基本目录结构
- settings
- ROOT_URLCONF
- 指定项目的基础路由配置文件
- DATABASES
- 指定数据库的配置信息
Django注意点
- 1 服务器启动以后无需关闭,修改后服务器会自动重启
URL的使用
- 1 urls.py
- 默认是在主目录中,主路由配置文件,会包含最基本的地址映射
- 每个请求到达之后,会由urls.py中的urlpatterns列表中的url()进行匹配
- 2 在Django2.1中 常用path和re_path来匹配路由
- 3 url()函数匹配上之后,可能将请求转交给其他的urls.py或视图Views去处理
Django路由分发案例
HTTPResponse
from django.shortcuts import render, HttpResponse
- 所在模块
django.shortcuts
shortcuts在英文中是快捷键的意思 - 实际案例源码
视图函数
def 视图名字(request)
request里面保存了所有的请求信息- 重新回顾了一个月的PHP,发现PHP真的垃圾
- 不过也不是全无所获,学会了很多的编程思想,对数据库的操作更进一步
注意
- 应用路由的开头不要写/
re_path(r'^test/$',views.test)
urls.py
url函数
- url函数的语法
- url(regex,views,kwargs=None,name=None)
- regex 正则表达式,匹配请求的url
- views 视图处理函数或其他的urls.py
- kwargs 字典,用来向views传参的,没有参数可以省略
- name,给url()起别名,主要在模板中使用
- 案例
通过URL向views传参
http://localhost:8000/goods/商品id
- 主要有两种方式
- 使用正则表达式
必须掌握
- 使用字组传参,一个子组是一个参数
- 想要多个参数的话则可以使用多个子组
re_path(r'run/',run_views)
re_path(r'run/数字')
如何处理数字re_path(r'run/(\d{2},run_args_views)')
用正则表达式分组- 访问路径是run/四位数字/两位数字 交给run1_views处理
re_path(r'run/(\d{4})/(\d{2}),run1_views')
- 字典传参
re_path(r'^show/',show_views,{'name':'abccc','age':88})
- 基本上用不到
- 注意:
- 视图处理函数中,必须声明参数
- 参数的名称和位置,必须与字典中的名称和位置保持一致
- 注意
- 在url()中,一个子组()表示一个参数
- 在views.py中,对应的处理函数,要根据url()函数中子组的个数,相应的对应参数,对应的参数要位于request之后
- 案例
- re_path(r’run/正则表达式/正则’)—-def view(request,参数1,参数2)
- 至少说了三遍了,能用python实现的,不要考虑其他语言,优势太大….
Django中的应用
什么是应用
- 应用就是网站中一个独立的程序模块
- 在Django中,主目录一般不处理用户的具体请求
- 主目录主要做的是项目的初始化和设置,以及请求的分发
创建应用
- 命令
./manage.py startapp 应用名称
- 案例
python manage.py startapp news
- 在settings.py中进行设置
INSTALLED_APPS[]
把应用名称加在最后面
应用的结构组成
- migrations目录
- __init__.py
- admin.py
- apps.py
- models.py
- tests.py
- views.py