django-10-中间件和上下文管理器
<<<中间件的引入>>>
用户<->中间件<->url->视图
用户<->中间件<->url->视图
在app目录里面
middleware.py
middleware.py
(1)中间件就是一个可调用的对象,接受一个request并返回一个请求
(2)一个中间件可以是一个函数,参数必须要是get_response
一次性设置和初始化
每一个请求都会调用
一次性设置和初始化
每一个请求都会调用
django自动调用视图
(3)中间件也可以写成一个类,并且他的实例可以被调用
【中间件激活】
在settings里面的MIDDLEWARE里面导入中间件
如果没有MIDDLEWARE就自己定义一个(有些django版本的settings里面是MIDDLEWARE_CLASSES)
在settings里面的MIDDLEWARE里面导入中间件
如果没有MIDDLEWARE就自己定义一个(有些django版本的settings里面是MIDDLEWARE_CLASSES)
视图从上向下,响应从下向上
<<<上下文处理器>>>
所有的模板上都需要一个特定的变量是,上下文管理器就能处理好
(1)在app目录下
customer_context_processors.py
所有的模板上都需要一个特定的变量是,上下文管理器就能处理好
(1)在app目录下
customer_context_processors.py
(2)上下文处理器就是一个函数,函数必须传入request作为参数并返回一个字典
【激活】
在settings的TEMPLATES里面的context_processor
在settings的TEMPLATES里面的context_processor
***django-admin自动生成功能齐全的后台***
(1)使用之前要做数据库迁移
migration
migrate
(1)使用之前要做数据库迁移
migration
migrate
(2)第一个用户需要用命令行
python manage.py createsuperuser
python manage.py createsuperuser
(3)注册模型
class StudentAdmin(admin.ModelAdmin):
list_display = []
list_display_links = []
list_fields = []
list_filter = []过滤器
list_per_page = 10分页
fields = []只允许修改的字段
fieldsets = []
list_display = []
list_display_links = []
list_fields = []
list_filter = []过滤器
list_per_page = 10分页
fields = []只允许修改的字段
fieldsets = []
admin.site.register(Models,StudentAdmin)
#每创建一个python项目都需要创建一个python虚拟环境