昨夜星辰昨夜风,画楼西畔桂堂东 

该教程旨在 了解和简单使用Django,各组件用法后续可以深入学习,为有需要的学习者建立Django框架的整体概念,不对之处可以指出,交流进步。


主要结构:


  • 路由 (Url)


  • 模型 (Models)


  • 视图(View)


  • 模板(Template)


1.路由


用户发出一个请求到后端,后端根据用户访问地址,匹配后转到对应的处理方法(controller)去处理这个请求。


这个匹配过程就是由路由来完成的。


2.模型


数据库表和python类的一个映射关联关系,实现操作python类属性和方法,来完成对数据表的操作。也就是把sql语句部分抽象化成对模型类(Model)的操作。


模型的设计,使用的就是ORM(对象关系映射)思想。


如 诗人表 poet:

id 

name        

cname

1        

杜甫

诗圣

2

李白

诗仙

3

李贺

诗鬼



创建对应模型Poet


 

from django.db import models


class Poet(models.Model):


id = models.AutoField(primary_key=True)


name = models.CharField(max_length=70)


cname = models.CharField(max_length=70)

应用时:

使用新建模型Poet对象,调用对象方法和修改对象属性,即可完成对数据库的操作。


3.视图


后端用于处理用户请求的python方法,路由(Url)会调用特定的视图去处理用户请求。


4.模板


渲染后成为一个视图返回用户,就是用户看到的web界面。


也就是一个jinja2 模板文件,里面定义变量,把模板渲染(render)成

视图时,传入与模板中对应的变量名称,就可以生成一个web页面。这个页面之后可以返回给用户。



范例

基本模板

base.html


{% load static %}
<html>
<head>
//可被渲染的块(title块)
<title>{% block title %}{% endblock %}</title>
</head>
<body>

<img src="{% static 'images/test.png' %}" alt="Logo">

//可被渲染的块,content 块
{% block content %}{% endblock %}


</body>
</html>


继承

如一个模板test.html ,继承基础模板base.html


{% extends "base.html" %}


{% block title %} {{ title }} {% endblock %}


{% block content %}
<h1> {{ content }} </h1>


<img src="{% static 'images/test.png' %}" alt="Logo">




{% endblock %}

 

渲染


render(request, 'test.html', {'title':title,'content':content})  


传入两变量 title = "渲染标题"     content = "测试渲染内容",渲染后得到


结果

<html>


<head> 渲染标题 </head>


<body>


<h1>测试渲染内容</h1>


<img src="{% static 'images/test.png' %}" alt="Logo">


</body>
<html>


总结:

这里只是模板简单使用的介绍,还有更多用法,如模板的继承,模板里流程控制语句等,这里不做说明。


知道了框架主要使用的组件后,就需要进入实操部分,如安装、配置、启动项目等