1、静态文件
使用:在网页使用的css文件,js文件和图片叫做静态文件
1)新建静态文件夹static static/css static/js static/images
2)配置静态文件所在的物理目录 Settings.py
STATIC_URL设置访问静态文件对应的url,以设置值为开头
STATICFILES_DIRS设置静态文件所在的物理目录
加载目录 先去配置目录下去找,找不到再去app下的static文件夹下面找
STATICFILES
动态生成静态文件的路径
2、中间件:通过预留的中间件函数打断执行流程,直接返回
中间件函数是django框架的函数接口
获取浏览器端的ip地址
使用request对象的META属性:request.META['REMOTE_ADDR']
使用中间件:在每一个视图函数调用之前执行
1)新建middleware.py文件
2)定义中间件类:类名可以自定义,函数名固定
在类中定义中间件预留函数
__init__:服务器响应第一个请求的时候调用
process_request:是在产生request对象,进行url匹配之前调用
process_view:是url匹配之后,调用视图函数之前
process_response:视图函数调用之后,内容返回给浏览器之前
process_exception:视图函数出现异常,会调用这个函数
如果注册的多个中间件类中包含process_exception函数的时候,调用的顺序跟注册的顺序是相反的
执行过程:
3)注册中间件类
示例:
__init__只在服务器启动后第一次调用时执行
3、Admin后台管理
使用:本地化,语言和时区-->创建超级管理员 python manage.py createsuperuser-->注册模型类-->自定义管理页面
自定义模型管理类 在admin中定义,继承admin.ModelAdmin
1 #admin.py 2 class AreaInfoAdmin(admin.ModelAdmin): 3 '''地区模型管理类''' 4 list_per_page = 10 #指定每页显示10条数据 5 list_display = ['id', 'atitle', 'title'] 6 list_filter = ['atitle'] #列表右侧的过滤栏 7 search_fields = ['atitle'] #列表页上方的搜索框 8 9 #models.py 10 class AreaInfo(models.Model): 11 '''地区模型类''' 12 # 地区名称 13 atitle = models.CharField(verbosename='标题',max_length=20) 14 # 自关联属性 15 aParent = models.ForeignKey('self', null=True, blank=True) 16 17 def __str__(self): 18 return self.atitle 19 20 def title(self): 21 return self.atitle 22 title.admin_order_field = 'atitle' #指定排序字段 23 title.short_description = '地区名称' #指定列标题 24 25 def parent(self): 26 if self.aParent is None: 27 return ' ' 28 return self.aParent.atitle 29 parent.short_description = '父级地区名称'
编辑页选项