zoukankan      html  css  js  c++  java
  • Django: 后台常用操作

    指定状态码

    return JsonResponse(data, status=201)
    

    image-20210718183451044.png

    Djano删除数据库

    删除对应数据库后,删除对应文件

    image-20210720201435427.png
    删除对应的记录

    image-20210720202023925.png

    Django后台管理

    创建超级管理员

    python manage.py createsuperuser

    在后台中管理数据模型

    # admin.py
    from django.contrib import admin
    
    from JiLian.models import UserModel, Address
    
    admin.site.register(UserModel)
    admin.site.register(Address)
    

    image-20210722161807192.png

    在后台中查看数据

    class UserModel(models.Model):
        u_name = models.CharField(max_length=16, unique=True)
        u_password = models.CharField(max_length=256)
        
        # 以下代码,可以在后台中看到数据
        def __str__(self):
            return self.u_name
    
    class Address(models.Model):
        a_address = models.CharField(max_length=128)
    
        a_user = models.ForeignKey(UserModel, on_delete=models.CASCADE, null=True, blank=True, related_name='address_list')
        
        def __str__(self):
            return self.a_address
    

    image-20210722162158466.png

    个性化站点管理

    若感觉默认的站点样式不能满足应用需求,则可以通过继承Django定义的管理员数据模型,模板,站点类来开发出个性化的管理员站点。注册的时候添加自己的管理类

    # admin.py
    # 创建管理类
    class StudentAdmin(admin.ModelAdmin):
        # 规则
        pass
        
    # 注册管理类
    admin.site.register(Students,StudentAdmin) 
    
    #显示规则
    list_display 显示字段
    list_filter 过滤字段
    search_fields 搜索字段
    list_per_page 分页,每页多少条数据
    orderng 排序规则
    分组显示
    fieldsets = (
        ('班级', {fields:('sgrade')}),
        ('姓名',{fields:('sname')}),
    )
    
    # 修改规则
    fields  显示字段
    exclude  不显示的字段
    

    筛选字段

    class UserAdmin(admin.ModelAdmin):
         # 筛选字段
        list_filter = 'u_name', 'u_password'
    
    admin.site.register(UserModel, UserAdmin)
    

    tempsnip.png

    搜索字段

    class UserAdmin(admin.ModelAdmin):
        # list_display 显示字段
        list_filter = 'u_name', 'u_password'
        # 搜索字段
        search_fields = 'u_name',
        pass
    ​
    admin.site.register(UserModel, UserAdmin)
    

    tempsnip-1626943831676.png

    自定义显示字段

    class UserAdmin(admin.ModelAdmin):
        # list_display 显示字段
        list_display = 'u_name', 'u_password'
        # 筛选字段
        list_filter = 'u_name', 'u_password'
        # 搜索字段
        search_fields = 'u_name',
        pass
    ​
    admin.site.register(UserModel, UserAdmin)
    

    tempsnip-1626944172596.png

    分页显示

    class UserAdmin(admin.ModelAdmin):
        # list_display 显示字段
        list_display = 'u_name', 'u_password'
        # 筛选字段
        list_filter = 'u_name', 'u_password'
        # 搜索字段
        search_fields = 'u_name',
        # 每页显示三条
        list_per_page = 3
        pass
    ​
    admin.site.register(UserModel, UserAdmin)
    

    tempsnip-1626944732699.png

    分组显示

    class StudentAdmin(admin.ModelAdmin):
    ​
        def sex(self):
            if self.s_sex:
                return '男'
            else:
                return '女'
    ​
        sex.short_description = '性别'
        list_display = 's_name', 's_age', sex
        # 分组显示
        fieldsets = (
            ('基本信息', {'fields': ('s_name', 's_age', 's_sex')}),
            ('可选信息', {'fields': ('s_height', 's_weight')}),
        )
    admin.site.register(Student, StudentAdmin)
    

    tempsnip-1626964590856.png

    级联显示

    class StudentInfo(admin.TabularInline):
        extra = 3
        model = Student
    ​
    class GradeAdmin(admin.ModelAdmin):
        list_display = 'g_name', 'g_postion'
        inlines = [StudentInfo]
    

    image-20210722233657292.png

    自定义后台管理模板

    覆盖系统模板的方式,在django/contrib/admin/templates/admin中,将需要重新定制的文件复制出来,在自己的工程中创建相对应的子目录,在settings.py中注入模板路径,子模板继承子复制的模板添加自己的代码。

    自定义登录页面

    原始文件路径:

    E:WorkSpacepython_xnhjHelloRestLibsite-packagesdjangocontribadmin	emplatesadminlogin.html
    

    templates文件夹中新建adminlogin.html

    Django后台模板

    https://github.com/vinta/awesome-python#admin-panels

    博观而约取,厚积而薄发
  • 相关阅读:
    安装MSSQL2008出现的问题记录
    制作安装包遇到的问题
    算法设计方法动态规划
    基础果然要牢记(一次失败的电面)
    搜狗垂搜笔试
    几种堆的时间复杂度分析
    正则表达式转NFA
    组合数学(1)
    算法设计方法贪心算法
    最短路径问题
  • 原文地址:https://www.cnblogs.com/leoych/p/15339623.html
Copyright © 2011-2022 走看看