其他常用python方法

1.静态文件处理:{%load static from staticfiles%}

                            <img src="{%static “img/g.png”%}">

2.中间件:__init__ (self)  初始化:在服务器响应第一个请求的时候调用

                process_request(self,request)  处理请求前:request对象产生之后,url匹配之前调用

                process_view(self,request,view_func,*view_args,**kwargs)   处理视图前:url地址匹配之后,视图函数调用之前

                process_response(self,request,response)  处理响应后:视图函数调用之后,返回HttpResponse对象

                process_exception(self,request,exception)  异常处理:视图抛出异常后,返回一个HttpResponse对象

   使用:在应用下创建middleware.py文件,在setting中注册

   多个注册的中间件类中都有process_exception的方法,则先注册的后执行。

3.Admin站点

   1)控制管理页展示:注册参数:admin.site.register(AreaInfo,AreaAdmin)

                                    装饰器:@admin.register(AreaInfo)

                                                   def AreaAdmin(admin.ModelAdmin):

                                                            pass

   2)列表页选项

        页大小:list_per_page=100

        顶部/底部显示的属性:action_on_top/bottom=True

        列表中的列:list_display=[模型字段1,模型字段2,方法名]

        排序:admin_order_field=模拟字段类,方法列不能排序

        列标题:short_description='列标题',模型字段不能直接使用这个属性,将模型字段封装为方法在使用。

        右侧栏过滤器:list_filter=[‘字段’]

        搜索框:search_fields=[‘字段名,可以进行模糊查询’]

        中文标题:在model中指定verbose_name=中文名称'

   3)编辑页选项

        显示字段顺序:fields=[字段名]

        在下拉列表中输出对象的名称:在models中添加__str__方法.

        分组显示:fieldsets=((‘组1标题’,{‘fields’:(字段)}),(‘组2标题’,{‘fields’:(字段)}))

        关联对象: 

        (1)类型stackedInlineAdmin:表示在模型的编辑页面嵌入关联模型的编辑

                 创建AreaStackedInline

          class AreaStackedInline(admin.StackedInline):
                model = AreaInfo#关联子对象
                extra = 2#额外编辑2个子对象

                 修改AreaAdmin

          class AreaAdmin(admin.ModelAdmin):
                ...
                inlines = [AreaStackedInline]

        (2)子类TabularInline:以表格的形式嵌入。

                创建TabularInline类

          class AreaTabularInline(admin.TabularInline):
                model = AreaInfo#关联子对象
                extra = 2#额外编辑2个子对象

                修改AreaAdmin类

          class AreaAdmin(admin.ModelAdmin):
                ...
                inlines = [AreaTabularInline]

4.上传图片

    1)model中设置图定义模型:models.ImageField(upload_to='booktest/')

    2)迁移文件

    3)在setting中设置文件保存路径:MEDIA_ROOT=os.path.join(BASE_DIR,'static/media')

    4)在media下创建booktest文件夹

5.分页

    1)Paginator类实例对象

        __init__(列表,int:每页数据的条数)

        属性count:返回对象总数

        属性num_pages:分页后的总页数

        属性page_range:返回页码列表

        方法page(m):返回Page类实例对象,表示第m页数据

    2)Page类实例对象

        属性object_list:返回当前页对象的列表

        属性number:返回当前是第几页

        属性paginator:当前页对应的Paginator对象

        has_next():判断是否有下一页

        has_precious():判断是否有上一页

        len():返回当前页面对象的个数

        precious_page_number:返回上一页页码

        next_page_number:返回下一页页码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值