一、基本组件
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
四、项目结构
1、manage.py
所有子命令的入口,比如:
python3 manage.py runserver 启动服务
python3 manage.py startapp 创建应用
python3 manage.py migrate 数据库迁移
直接执行python3 manage.py 可显示所有子命令
2、项目同名文件夹mysite1/mysite1
(1)_init.py
(2)wsgi.py
(3)urls.py ****************
(4)setting.py ******
项目的配置文件。
配置项分为公有配置和自定义配置。
配置项名称必须是大写的。
配置项 | 描述 | 备注 |
---|---|---|
BASE_DIR | 项目启动的绝对路径 | |
DEBUG | 项目启动模式(True–调试模式)(False-上线模式) | 调试模式中前端页面可显示报错内容;上线模式需配合正确的ALLOWED_HOSTS |
ALLOWED_HOSTS | 请求头Host头 | 若想生效,DEBUG必须为True |
DATABASES | 数据库相关配置 | |
TEMPLATES | html页面相关配置 | |
LANGUAGE_CODE | 语言配置 | 中文zh-Hans |
TIME_ZONE | 时区 | 东八时区Asia/Shanghai |
。。。 | 。。。 |
五、URL和视图函数
1、URL格式
protocol:// hostname[:port] / path [?query][#fragment]
协议://域名[:端口号] / 路由[?查询字符串][#锚点]
(1)protocol协议
(2)hostname主机名、域名或ip地址
(3)path路由地址*******
由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器如何处理这个请求。
(4)query查询
给动态网页传递参数,可有多个参数,用&隔开,参数名和值用=隔开
(5)fragment信息片段
2、Django处理url请求
3、视图函数 自己创建<项目同名文件夹下>/views.py
用于接收浏览器请求,并通过HttpResponse对象返回响应的函数。
此函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。
from django.http import HttpResponse
def xxx_view(request,其他参数):
return HttpResponse对象
六、路由配置
1、路由配置-path
- 导入
from django.urls import path
- 语法
path(route,views,name=None)
- route:匹配的请求路径
- views:指定路径对应的视图处理函数的名称
- name:为地址起别名,在模板中地址反向解析时使用
2、path转换器
# 计算器练习
# urls配置如下
urlpatterns = [
# 计算器 http://127.0.0.1:8000/a/opt/b/
path('<int:a>/<str:opt>/<int:b>',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!')
3、re_path正则表达式匹配
- 在url的匹配过程中可使用正则进行精准匹配
- 语法:
re_path(reg,view,name=xxx)
正则命名分组格式 (?P<name>pattern)
- 匹配提取后按照关键字传参的方式返回给视图函数
- 使用前需先导入此方法
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<a>d{1,2})/(?P<op>w+)/(?P<b>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<year>d{4})/(?P<month>d{1,2})/(?P<day>d{1,2})$',views.bir_view),
re_path(r'^birthday/(?P<month>d{1,2})/(?P<day>d{1,2})/(?P<year>d{4})$',views.bir_view)
]
原文地址:https://blog.csdn.net/weixin_44840038/article/details/128610597
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_13213.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!