Django-笔记
[toc]
零、资料
视频:
文档:
常用命令:
1 | """ |
一、安装 Django
前提:安装 Python 3.8以上(本笔记以 3.10
为例)
安装 Django:
1 | # cmd 或 直接Pycharm中安装 |
配置系统环境变量到 Path:
1 | D:\Python3.10\Scripts |
查看是否安装成功
1 | python -m django --version |
创建第一个站点:
- 创建站点目录:
/myDango
- 进入目录,执行创建项目的命令:
django-admin startproject mysite01
生成以下目录结构:
1 | mysite01/ |
运行第一个站点
1 | # 在站点目录下执行以下命令,即: manage.py所在的目录 |
二、全局配置文件:settings.py
注意:
所有配置名需要大写。
代码中引用配置:from django.conf import settings
1、完整配置:
1 |
|
完整配置2:
1 | """ |
2、开启 debug 模式
1 | # 调试模式:页面可以显示报错消息,项目上线的时候应该改为False |
3、按 Host 字段控制访问请求
1 | # ALLOWED_HOSTS = [*] 允许全部请求 |
4、注册全局路由配置文件
1 | ROOT_URLCONF = 'mysite01.urls' |
5、注册应用的配置文件
1 | # 一个项目可以有多个应用,每个应用都需要在此处注册 |
6、更改站点的语言
1 | LANGUAGE_CODE = 'zh-Hans' |
7、更改时区
1 | # 时区改为东八区 |
三、URL 与 视图函数
1、Django 处理 URL 请求
小结:
- 发起 HTTP 请求
- Django 根据
settings.py
中的ROOT_URLCONF
配置项,找到 主路由配置文件urls.py
。- 根据 主路由配置文件
urls.py
中的urlpatterns
数组,匹配 url路径- 成功,返回 响应
- 失败,返回 404
2、视图函数
视图函数的作用:接受请求,返回响应。
编写的位置:<项目同名的文件夹下>/views.py
或<项目的应用文件夹下>/views.py
mysite01/polls/views.py
:
1 | from django.http import HttpResponse |
urls.py
:
1 | from django.contrib import admin |
小结:
- 在
views.py
中,定义视图函数- 在
urls.py
的urlpatterns
配置项中,注册url
与视图函数
的映射(需要先导包)
3、路由配置
路由的配置,需要导入 Path 函数(from django.urls import path
)
练习:
练习-代码:
(1) 创建工程:
1 | # 进入工作空间,执行以下命令,创建一个名为mysite02的工程 |
(2) 在项目的同名目录下,创建 views.py
:
1 | from django.http import HttpResponse |
(3)配置路由:
1 | from django.contrib import admin |
(4)启动网站:
1 | cmd 进入manage.py 所在的目录,执行一下目录启动网站 |
4、路径转化器
类型转化器的别名,就是要传给视图函数的参数。
转化器类型 | 说明 | 实例 |
---|---|---|
str | 匹配除“/”外的所有字符串 | a/b/<str:username> => a/b/zhangsan |
slug | 匹配所有的字母、数字、下划线 | a/b/<slug:sl> => /a/b/a-a-a_3 |
int | 匹配所有数字 | a/b/<int:pageNum> => /a/b/2/ |
path | 匹配所有字符串(包括“/”) | a/b/<path:ph> => /a/b/c |
对 “路由配置” 章节中的练习的改进:
(1) urls.py
:
1 | from django.contrib import admin |
(1) views.py
:
1 | from django.http import HttpResponse |
5、正则路由转化器
urls.py
:
1 | from django.urls import path |
views.py
:
1 | from django.shortcuts import HttpResponse |
四、模板
架构:
模板的使用:
用户访问网站的流程:
1、模板的使用步骤
使用步骤:
- 在
manage.py
所在的目录下,创建templates
目录,在该目录下创建HTML
页面,通过{{变量名}}
占位。- 在
settings.py
中,修改TEMPLATES
配置项的DIRS
配置子项。- 在
views.py
的视图函数中,调用render(request,'模板文件名',字典数据)
【需导包】。- 在
urls.py
的urlpatterns
配置项中,添加模板的视图函数。
(1)创建templates
目录,创建模板页test_templates.html
:
1 |
|
(2)在settings.py
中,修改TEMPLATES
配置项:
1 | TEMPLATES = [ |
(3)在views.py
中,添加视图函数:
1 | from django.shortcuts import render |
(4)在urls.py
中,添加路由(建立 url 与 视图函数 的映射):
1 | from django.urls import path |
2、模板中的语法
注意:模板中的双大括号
无法解析小括号
(1)变量:
(2)if 标签:
1 | {% if condition1 %} |
(3)for 标签
views.py
:
1 | from django.shortcuts import render |
test_for.html
:
1 |
|
(3)模板过滤器
3、模板的继承
模板继承-小结:
- 父模板中,定义可以被覆盖重写的区域
block
- 子模版中,继承父模板
- 子模板,重写父模板
注意:动态的数据是无法继承的!
views.py
(视图函数):
1 | from django.shortcuts import render |
urls.py
(路由):
1 | from django.urls import path |
base.html
(父模板页):
1 |
|
son1.html
(子模板页-1):
1 | {% extends "base.html" %} |
son2.html
(子模板页-2):
1 | {% extends "base.html" %} |
五、URL 反向解析
小结:
URL 的反向解析,就是在
urls.py
的urlpatterns
配置项中,进行path
函数的映射时,给映射的url
取一个别名
,然后在使用url时,直接用别名代替url。
六、静态资源的配置
在manage.py
所在的目录下,创建templates
目录,
在templates
目录中,创建static
目录,
在static
目录中,创建css
目录,js
目录,images
目录,
在settings.py
中,配置静态资源的目录:
1 |
|