Django其他

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 = '父级地区名称'

编辑页选项

 

posted @ 2020-05-24 22:03  LinBupt  阅读(150)  评论(0编辑  收藏  举报