昨夜星辰昨夜风,画楼西畔桂堂东
该教程旨在 了解和简单使用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>
总结:
这里只是模板简单使用的介绍,还有更多用法,如模板的继承,模板里流程控制语句等,这里不做说明。
知道了框架主要使用的组件后,就需要进入实操部分,如安装、配置、启动项目等