Django的admin组件
Posted bad-robot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django的admin组件相关的知识,希望对你有一定的参考价值。
1、Django项目中的admin app
Django 提供了基于 web 的管理工具。
Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它:
# Application definition INSTALLED_APPS = [ ‘django.contrib.admin‘, ‘django.contrib.auth‘, ‘django.contrib.contenttypes‘, ‘django.contrib.sessions‘, ‘django.contrib.messages‘, ‘django.contrib.staticfiles‘, ‘app01‘ ]
2、启动admin管理工具
Django功能默认已经对admin的路由进行了配置。在urls.py中,如下:
from django.contrib import admin from django.urls import path urlpatterns = [ path(‘admin/‘, admin.site.urls), ]
3、使用admin
3.1、在使用admin之前,先创建mysql数据库:
DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘: ‘book_info‘, ‘HOST‘: ‘localhost‘, ‘PORT‘: 3306, ‘USER‘: ‘用户名‘, ‘PASSWORD‘:‘密码‘, } }
3.2、并配置pymysql
在工程目录"__init__.py"中配置pymysql:
import pymysql pymysql.install_as_MySQLdb()
3.4、在app01中定义数据表
from django.db import models # Create your models here. class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64,unique=True) # def __str__(self): # return self.name class Book(models.Model): id = models.AutoField(primary_key=True) isbn = models.BigIntegerField(null=False,unique=True) name = models.CharField(max_length=64) price = models.FloatField(null=False) url = models.CharField(max_length=128) publish = models.ForeignKey( to="Publisher", to_field="id", related_name="books", # related_query_name="book_q", on_delete=models.CASCADE) pub_date = models.DateField(null=True,blank=True) # def __str__(self): # return self.name class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64) book = models.ManyToManyField(to="Book") # def __str__(self): # return self.name class Translator(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64,null=False) book = models.ManyToManyField(to="Book") # def __str__(self): # return self.name
3.5、创建对象关系映射
在终端中执行:
python manage.py makemigrations
python manage.py migrate
3.6、创建超级用户
在终端中执行:
python manage.py createsuperuser
输入用户名,和密码。
3.7、在app01的admin.py中引入models中的表
from app01.models import Book,Publisher,Author,Translator
3.8、使用
想要在admin 界面管理某个数据模型(model),我们需要先将该数据模型(model)注册到 admin。
admin.site.register(Book)
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Translator)
3.9、登录
在浏览器中输入:http://127.0.0.1:8009/admin/,使用用户、密码登录,就能实现该model对应的数据表增删改查的功能。
4、admin的定制
如果想要进行更多的定制操作,需要利用ModelAdmin进行操作,如:
# 注册方式1 class PublisherAdmin(admin.ModelAdmin): list_display = ("name", "address") admin.site.register(models.Publisher, PublisherAdmin) # 注册方式2 @admin.register(models.Book) class BookAdmin(admin.ModelAdmin): list_display = ("title", "price", "publish_date", "publisher")
以上是关于Django的admin组件的主要内容,如果未能解决你的问题,请参考以下文章