本章将介绍Django的admin工具:
通常一个网站或应用都会有一个给用户使用交互界面和一个给维护人员使用的管理端,管理端最基本的功能就是进行内容管理。Django admin工具提供了常用的对模型的CURD操作,可以实现三分钟搭一个管理端。
步骤↓
当我们使用django-admin startproject xxx 构建好一个Django项目时,我们会发现在settings.py中存在以下代码:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
其中django.contrib.admin就是Django admin工具,同样我们在urls.py可以看到:
urlpatterns = [ url(r'^admin/', admin.site.urls), ]
不错,一个刚搭建好的Django项目,已经配置好了admin工具,我们根据这个url访问一下,先使用python manage.py runserver 启动项目,浏览器访问http://127.0.0.1:8000/admin,可以看到如下界面:
但是我们发现,我们并没有登录需要的用户名和密码,那我们怎么登录进去看看呢,请往下看。
-
首先,创建一个超级用户:
python manage.py createsuperuser
注:执行这个命令后会一步一步提示你输入用户名,邮箱和密码。超级用户就相当于linux中的root,拥有所有权限,包括创建用户、组、分配权限等。 - 用我们刚创建好的超级用户登录admin,登录成功后会看到如下界面:
在此就可以管理组和用户了,大家可以自己点点,我就不截图了。 -
那如何管理自己建立的model呢?我们发现Django项目中有一个admin.py模块,该模块就是将我们的model添加到管理端用的。假设你已经建立好了一个model(若要了解model,请看上一章),名为Test。在admin.py中添加如下代码:
from django.contrib import admin from TestModel.models import Test # Register your models here. admin.site.register(Test)
刷新admin页面,可以看到多了一个管理Test的功能
这样我们就能对Tests进行CURD操作了。 -
当然,admin工具不会这么死板,我直接上一段代码:
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.contrib import admin from website1.models import Movie, Classifies, Outsource # Register your models here. @admin.register(Movie) class MovieModel(admin.ModelAdmin): list_display = ('moviename', 'weight', 'countnumber', 'avaliblesum', 'isoutsource', 'classify') fields = ('moviename', 'prefilename', 'suffixname', 'publishtime', 'types', 'area', 'language', 'actor', 'director', 'keyword', 'weight', 'countnumber', 'avaliblesum', 'introduce', 'duration', 'isoutsource', 'picurl', 'classify') search_fields = ('moviename', 'keyword', 'weight') list_editable = ('weight', 'avaliblesum') delete_confirmation_template = True @admin.register(Classifies) class ClassifiesModel(admin.ModelAdmin): list_display = ('classname', 'classkey', 'weight') fields = ('classname', 'classkey', 'weight') delete_confirmation_template = True @admin.register(Outsource) class OutsourceModel(admin.ModelAdmin): list_display = ('movie', 'num', 'outfilelink') fields = ('movie', 'outfilelink', 'num') list_editable = ('outfilelink', 'num') search_fields = ('movie__moviename', ) delete_confirmation_template = True
使用@admin.register注解,可以将model关联到一个类上并注册到admin,这个类的名字随意取。该类的作用就是个性化定制该model的admin样式。上边的代码中:list_display 在列表中展示哪些字段 field 新增和修改表单中,展示哪些字段 list_editable 在列表展示的字段哪些可编辑 search_fields 哪些字段可在搜索框中搜索 delete_confirmation_template 删除记录的时候,是否先转到"是否确认"页面 下边提供几个图,将有助于你理解这些:
- Django admin工具也支持复杂model,例如ForeignKey,此时该字段会变成<select></select>控件,如上图的"类别"字段。
- 字段的<lable>值(如上边的"是否外链地址","封面链接"等文字),为model字段的name参数,如下:
class Outsource(models.Model): num = models.IntegerField('第几集', default=1) outfilelink = models.CharField('外部文件链接', max_length=500) movie = models.ForeignKey(Movie, verbose_name="电影", on_delete=models.CASCADE) def __unicode__(self): return str(self.num)
注:admin工具还支持表单分栏,内联显示等等功能。当然你也可以修改Django admin的静态资源样式,重构一个admin界面。此处不再多说,本章只是介绍一下Django admin的常用内容,若要详细了解,请看官方文档。
相关推荐
本资源“Django-Pizza-13.11.11.tar.gz”就是一个针对Python后端开发的特殊库——Django-Pizza的特定版本。Django-Pizza是基于Django框架构建的一个应用,它提供了许多用于构建Web应用的实用功能和组件,旨在简化...
无论是想要从零开始学习Django还是希望深入掌握其在电子商务领域应用的开发者,都能从中获益匪浅。 #### 五、结语 《Django 1.2 电子商务》不仅是一本介绍Django在电子商务领域应用的书籍,更是一部指导开发者如何...
Django是一个开源的Web框架,由Python编写,采用了MTV(模型 Model、模板 Template、视图 View)的框架模式,让Web开发变得更加快捷高效。Django的官方文档《The Django Book 2.0 中文版》详细地介绍了如何使用...
它内置了大量便捷的功能,如对象关系映射(ORM)、用户认证、内容管理等,使得开发者可以不必从零开始搭建系统框架,而是专注于功能的实现。在本项目中,Django框架主要负责处理后端逻辑,如用户认证、数据处理、API...
- **从零开始**:适合完全没有经验的新手,详细介绍如何一步步构建一个Django应用。 - **概览**:对Django的整体架构进行概览性描述,帮助用户理解Django的核心设计理念。 #### 二、安装与教程 - **安装**:详细...
本文将深入探讨如何使用Python的Django框架从零开始构建一个全栈博客应用——"BlogApp-Django"。该应用涵盖了前端的HTML、CSS和JavaScript技术,以及后端的Django核心功能,使得用户能够注册账户并发布文章。这将是...
- **用户数据集**:系统内含预设的用户数据集,简化了用户信息管理,避免了从零开始构建数据库的复杂性。 2. **图书管理**: - **图书信息管理**:系统维护了一个图书数据集,包含每本书的书名、作者、出版社、...
【django-site】是一个基于Python开发的Web应用框架——Django中的一个项目模板,它为创建一个新的Django站点提供了快速入门的基础。Django是强大的、高级的、可重用的Web框架,它遵循“DRY”(Don't Repeat ...
在这个"Mysite"教程中,我们将学习如何从零开始搭建一个完整的Django项目。 首先,让我们了解Django的基本概念。Django遵循MVT(Model-View-Template)架构模式,即模型(Model)负责数据管理,视图(View)处理...