• django admin后台管理功能的学习


    1.简要说明

    用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行:

    from django.contrib import admin
    from django.urls import path
    
    urlpatterns = [
        path('admin/', admin.site.urls),
    ]

    上边看到导入的admin模块,就是本篇所要说的主要内容:

    2. 主要功能

      功能1:提供数据库管理功能

        基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查

      功能2:二次开发

        基于该模块的数据管理功能,可以二次定制一些实用的功能。

    3.使用方法

    步骤1:在settings.py中,INSTALLED_APPS中,加入django.contrib.admin

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth', #admin依赖
        'django.contrib.contenttypes', #admin依赖
        'django.contrib.sessions', #admin依赖
        'django.contrib.messages',
    ]
    

      

    步骤2:urls.py创建admin路由

    from django.contrib import admin
     
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        ....  
    ]

    步骤3:在settings.py配置文件中,中间件注册

    MIDDLEWARE = [
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        ....
    ]

    步骤4:创建admin管理用户

    python manage.py createsuperuser

    步骤5:在app 的models.py文件中创建表信息,即表类

    from django.db import models
     
     
    class Gender(models.Model):
        name = models.CharField(max_length=32)
     
    class userinfo(models.Model):
        nid = models.AutoField(primary_key=True)
        name = models.CharField(max_length=30, verbose_name='用户名',editable=False)
        email = models.EmailField(db_index=True)
        memo = models.TextField()
        img = models.ImageField(upload_to='upload')
        user_type = models.ForeignKey("UserType", null=True, blank=True)
        gender_choices = (
            (0"男"),
            (1"女"),
        )
        gender = models.IntegerField(choices=gender_choices,default=1)
     
    class UserType(models.Model):
        name = models.CharField(max_length=32)
     
        def __str__(self):
            return self.name

    步骤6:在admin.py中注册表

    from django.contrib import admin
     
    # Register your models here.
    from app01 import models
    admin.site.register(models.userinfo)
    admin.site.register(models.UserType)

    步骤7:生成表结构

    python  manage.py makemigrations && python manage.py migrate

    注意:在数据库表结构发生变动时,再次执行python  manage.py makemigrations就会报错,这是因为此时表中可能已经有数据,貌然变动表结构会有影响,此时的解决方法有两种,一种是,设置新增字段的default='xxx'某个值, 但是这种通用性不是很好。 另外一种是,设置该字段null=True。即允许为空即可

    步骤8:运行项目,登陆管理界面

    python manage.py runserver
  • 相关阅读:
    Linux-C基础知识学习:C语言作业-输入三角形底和高,输出三角形面积
    Linux-C基础知识学习:C语言作业-从键盘输入一个三位数,以逆序输出。例如输入456,输出654
    Linux基础知识学习:Linux下修改文件名或修改文件夹名称(有待解决问题)
    Linux基础知识学习:linux用命令重启
    Linux基础知识学习:linux用命令重启
    Linux基础知识学习:Linux中修改环境变量及使环境变量生效的方法
    Linux基础知识学习:Linux中修改环境变量及使环境变量生效的方法
    Linux基础知识学习:安装JDK出现 cannot execute binary file
    Linux基础知识学习:安装JDK(tar.gz)
    Linux基础知识学习:查看所使用的Linux系统是32位还是64 位的方法
  • 原文地址:https://www.cnblogs.com/dangkai/p/10948485.html
Copyright © 2020-2023  润新知