Django的admin組件
阿新 • • 發佈:2018-10-04
query ger address model primary .com ons migration isbn
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.nameView Code
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組件