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

原文地址:https://www.cnblogs.com/bad-robot/p/9742025.html

时间: 2024-11-08 15:08:49

Django的admin组件的相关文章

第十九章 Django框架——Admin组件

第十九章 Django框架--Admin组件 一.创建超级用户 二.配置后台管理路由 三.注册admin后台管理页面 四.配置admin后台管理页面 一.创建超级用户 python manage.py createsuperuser 二.配置后台管理路由 url(r'^admin/', include(admin.site.urls)) #默认配置 三.注册admin后台管理页面 admin.py from django.contrib import admin from api import

django之admin组件

一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def func(self): self.test() print(self.val) def test(self): print("Base.test") class Foo(Base): def test(self): print("FOO.test") # def func(self): # print(self

Django admin 组件 原理分析与扩展使用 之 sites.py (一)

一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自己开发组件做铺垫. 二. 简单使用 1.在app 目录下的admin.py 中通过注册表 from django.contrib import admin from blog01.models import * admin.site.register([UserInfo,User,Blog]) #

django中的admin组件之自定义组件

内容回顾: 一 admin的使用 app01的admin.py文件:                  class BookConfig(admin.ModelAdmin):               list_display=[]               list_display_links=[]               list_filter=[]               search_fields=[]                              def pat

django中的admin组件之自定义组件的数据展示以及自定义列

虽然我们基本实现了我们自定义组件stark的功能,接下来就是显示数据了. 今天我们先来写查.先来写表单部分 我们如果需要显示我们自己配置类中的字段,应该怎么做呢? 我们有这样一个想法,将这些数据放在一个列表中,类似这样[['python',122],['linux',110]],然后在页面上依次循环这个列表,取值就行了. self.model.objects.all()中里面有我们需要的对象,self.list_display中有我们需要的字段.所以: def listview(self,req

8.10 Django admin组件使用

介绍 admin 组件实现了更方便的WEB后台数据管理方式 settings.py 中第一个组件就是 : INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', "app01" ] 启

Django——admin组件简单入门

Django-admin管理工具 一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes

自定义路由组件,Django的admin后台管理,DRF的三大认证,jwt认证

目录 一.自定义路由组件 1. 为什么要自定义路由组件 2. 自定义路由组件实例 二.Django的admin后台管理 三.DRF的三大认证组件概括 1. 认证组件 2. 权限组件 3. 频率组件 四.Django中的用户权限管理 五.jwt认证 1. jwt认证和普通session认证的区别 2. jwt认证介绍 (1)jwt的原理 (2)jwt三部分的内容 3. jwt的签发算法 (1)第一步:头部算法 (2)第二步:载荷部分的算法 (3)第三步:签名部分的算法 (4)第四步:连接生成tok

Django——admin组件

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.c