1、基本配置文件/路由系统
2、MTV——模型层、模板层、视图层
3、Cookies与Session
4、分页及发邮件
5、Admin管理后台
1、一译
2、Django官网
教学版本:Django2.2.12
我下载的版本:Django3.2
1、执行 django-admin startproject 项目名 即可创建对应的项目文件夹
2、进入目录后,执行python3 manage.py runserver (端口号) 启动django服务,端口号默认是8000,可以在http://127.0.0.1:8000看到启动页面。
3、关闭服务:ctrl+c或在其他终端下sudo lsof -i:8000查看进程id再kill -9 进程id号
windows下的命令为 netstat -ano | findstr 8000
所有子命令的入口,比如:
python3 manage.py runserver 启动服务
python3 manage.py startapp 创建应用
python3 manage.py migrate 数据库迁移
直接执行python3 manage.py 可显示所有子命令
python包初始化文件。
Web服务网关配置文件,Django正式上线时需要使用。
项目的主路由配置,当http使用时优先调用的文件。
项目的配置文件。
配置项分为公有配置和自定义配置。
配置项名称必须是大写的。
配置项 | 描述 | 备注 |
---|---|---|
BASE_DIR | 项目启动的绝对路径 | |
DEBUG | 项目启动模式(True-调试模式)(False-上线模式) | 调试模式中前端页面可显示报错内容;上线模式需配合正确的ALLOWED_HOSTS |
ALLOWED_HOSTS | 请求头Host头 | 若想生效,DEBUG必须为True |
DATABASES | 数据库相关配置 | |
TEMPLATES | html页面相关配置 | |
LANGUAGE_CODE | 语言配置 | 中文zh-Hans |
TIME_ZONE | 时区 | 东八时区Asia/Shanghai |
。。。 | 。。。 |
protocol:// hostname[:port] / path [?query][#fragment]
协议://域名[:端口号] / 路由[?查询字符串][#锚点]
存放资源的服务器的域名系统DNS 主机名、域名或ip地址
由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器如何处理这个请求。
给动态网页传递参数,可有多个参数,用&隔开,参数名和值用=隔开
类似书签,可直接定位到相应的位置
用于接收浏览器请求,并通过HttpResponse对象返回响应的函数。
此函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。
from django.http import HttpResponse
def xxx_view(request,其他参数):
return HttpResponse对象
from django.urls import path
path(route,views,name=None)
# 计算器练习
# urls配置如下
urlpatterns = [
# 计算器 http://127.0.0.1:8000/a/opt/b/
path('//' ,views.cal_view)
]
# views配置如下
def cal_view(request,a,opt,b):
if opt == 'add':
return HttpResponse(f'{a}+{b}={a+b}')
elif opt == 'sub':
return HttpResponse(f'{a}-{b}={a-b}')
elif opt == 'mul':
return HttpResponse(f'{a}*{b}={a*b}')
else:
return HttpResponse('Your opt is wrong!')
re_path(reg,view,name=xxx)
正则命名分组格式 (?Ppattern)
from django.urls import re_path
# 若需求可匹配http://127.0.0.1:8000/20/mul/40
# 不可匹配http://127.0.0.1:8000/200/mul/400
from django.urls import re_path
urlpatterns = [
re_path(r'^(?P\d{1,2})/(?P\w+)/(?P\d{1,2})$' ,views.cal2_view),
]
# 生日 http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字
# 生日 http://127.0.0.1:8000/birthday/一到两位数字/一到两位数字四位数字/
# 最终输出:生日为:xxxx年xx月xx日
urlpatterns = [
re_path(r'^birthday/(?P\d{4})/(?P\d{1,2})/(?P\d{1,2})$' ,views.bir_view),
re_path(r'^birthday/(?P\d{1,2})/(?P\d{1,2})/(?P\d{4})$' ,views.bir_view)
]