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
View 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")

 

转载于:https://www.cnblogs.com/bad-robot/p/9742025.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值