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

    编辑页选项

  • 相关阅读:
    一个Work Stealing Pool线程池的实现
    一步一步解剖Libevent源代码
    一步一步学习堆排序算法
    一个通用的Makefile框架
    为什么我们知道那么多道理(理论),却依然处理不好目前的生活
    SQL
    走进Java Map家族 (1)
    Java数组协变与范型不变性
    尝鲜Java 12新特性:switch表达式
    android高级UI之PathMeasure<一>--Path测量基础(nextContour、getPosTan、getMatrix、getSegment)
  • 原文地址:https://www.cnblogs.com/liushoudong/p/12714835.html
Copyright © 2020-2023  润新知