zoukankan      html  css  js  c++  java
  • Django admin管理

    admin的配置

    admin是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。

    如果你觉得英文界面不好用,可以在setting.py 文件中修改以下选项

    1
    LANGUAGE_CODE = 'en-us'  #LANGUAGE_CODE = 'zh-hans'

    一  认识ModelAdmin

       管理界面的定制类,如需扩展特定的model界面需从该类继承。

    二 注册medel类到admin的两种方式:

         <1>   使用register的方法

    1
    admin.site.register(Book,MyAdmin)

         <2>   使用register的装饰器

    1
    @admin.register(Book)

    三 掌握一些常用的设置技巧

    •     list_display:     指定要显示的字段
    •     search_fields:  指定搜索的字段
    •     list_filter:        指定列表过滤器
    •     ordering:       指定排序字段

    配置示例:

    1、在mysql数据库中,创建库

    mysql> create database Django_admin character set utf8;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> use django_admin
    Database changed

    2、配置连接数据库

    settings.py

    DATABASES = {
    
        'default': {
    
            'ENGINE': 'django.db.backends.mysql',
    
            'NAME': 'django_admin',
    
            'USER': 'root',
    
            'PASSWORD': 'oldboy123',
    
            'HOST': '',
    
            'PORT': '3306',
    
        }
    
    }

    3、写建表语句

    models.py

    from django.db import models
    
    # Create your models here.
    
    # Create your models here.
    
    
    class Book(models.Model):
        name=models.CharField(max_length=20)
        price=models.IntegerField()
        pub_date=models.DateField()
        publish=models.ForeignKey("Publish")
        authors=models.ManyToManyField("Author")
    
        def __str__(self):
            return self.name
    
    class Publish(models.Model):
    
        name=models.CharField(max_length=32)
        city=models.CharField(max_length=32)
    
        def __str__(self):
            return self.name
    
    
    #class Book_Author(models.Model):
    #    book=models.ForeignKey("Book")
    #    author=models.ForeignKey("Author")
    
    
    class Author(models.Model):
    
        name=models.CharField(max_length=32)
        age=models.IntegerField(default=20)
    
        def __str__(self):
            return self.name

    在windows终端执行:

    在终端执行命令
    
    创建表
    
    python manage.py makemigrations
    
    写入数据库
    
    python manage.py migrate

    4、配置连接数据库

    5、激活管理工具

    在urls.py中配置路由分发:

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

    当这一切都配置好后,Django管理工具就可以运行了。

    6、使用管理工具

    通过下面地址,就可以访问admin管理页面。要进入管理界面,我们要先创建超级管理员账号。

    http://127.0.0.1:8000/admin

     

    创建超级用户和密码

    D:pythondjango_admin>python manage.py createsuperuser
    Username (leave blank to use 'administrator'): nulige
    Email address: nulige@qq.com
    Password:
    Password (again):
    Superuser created successfully.

    添加普通用户

    激活普通用户和授权,参考下图:

    勾选相关选项,再点保存。

    7、在admin中订制各种后面管理页面功能。

    示例1:admin.py

    from django.contrib import admin
    
    
    from app01 import models
    # Register your models here.
    
    class BookAdmin(admin.ModelAdmin):
        list_display = ('id','name','price','pub_date')
        list_editable = ('name','price')
        filter_horizontal = ('authors',)
        list_per_page = 2
        search_fields = ('id','name','publish__name')
        list_filter = ('pub_date', 'publish')
    
    admin.site.register(models.Author)
    admin.site.register(models.Book,BookAdmin)
    admin.site.register(models.Publish)

     示例2:admin.py

    from django.contrib import admin
    
    
    from app01 import models
    # Register your models here.
    
    
    class BookAdmin(admin.ModelAdmin):
        list_display = ('id','name','price','pub_date')
        # list_per_page = 3
        ordering = ("-price","id")
        # fieldsets = [
        #     (None, {'fields': ['name']}),
        #     ('price information', {'fields': ['price', "publish"], 'classes': ['collapse']}),
        # ]
        #filter_vertical =
    
    
    admin.site.register(models.Author)
    admin.site.register(models.Book,BookAdmin)
    admin.site.register(models.Publish)
  • 相关阅读:
    13.App爬取相关库的安装(Charles,Mitmproxy,Appium)
    26.pymysql、pymongo、redis-py安装
    25.安装配置phantomjs
    2.博客随笔加密!!!
    17.scrapy-splash安装-2
    17.docker及scrapy-splash安装-1
    16.Mongodb安装
    scrapy--BeautifulSoup
    scrapy--selenium
    python--随笔一
  • 原文地址:https://www.cnblogs.com/nulige/p/6495708.html
Copyright © 2011-2022 走看看