`

从零开始搭建Python web框架——Django(四)

阅读更多

本章将介绍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,可以看到如下界面:

 但是我们发现,我们并没有登录需要的用户名和密码,那我们怎么登录进去看看呢,请往下看。

 

  1. 首先,创建一个超级用户:
    python manage.py createsuperuser
     注:执行这个命令后会一步一步提示你输入用户名,邮箱和密码。超级用户就相当于linux中的root,拥有所有权限,包括创建用户、组、分配权限等。
  2. 用我们刚创建好的超级用户登录admin,登录成功后会看到如下界面:

     在此就可以管理组和用户了,大家可以自己点点,我就不截图了。
  3. 那如何管理自己建立的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操作了。
  4. 当然,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 删除记录的时候,是否先转到"是否确认"页面

    下边提供几个图,将有助于你理解这些:

     

     

  5. Django admin工具也支持复杂model,例如ForeignKey,此时该字段会变成<select></select>控件,如上图的"类别"字段。
  6. 字段的<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的常用内容,若要详细了解,请看官方文档。

  • 大小: 7.4 KB
  • 大小: 23.5 KB
  • 大小: 25.7 KB
  • 大小: 51.7 KB
  • 大小: 31.7 KB
1
0
分享到:
评论

相关推荐

    基于python的web框架django开发的一个统计论文发表的系统源码.zip

    基于python的web框架django开发的一个统计论文发表的系统源码 基于python的web框架django开发的一个统计论文发表的系统源码 基于python的web框架django开发的一个统计论文发表的系统源码 基于python的web框架...

    Python高效开发实战——Django、Tornado、Flask、Twisted 的随书完整源代码

    本资源提供了四个知名Web框架——Django、Tornado、Flask和Twisted的随书完整源代码,帮助开发者深入理解和实践这些框架,提升开发效率。以下是对这四个框架的详细介绍: 1. Django:Django是一个高级的Python Web...

    Python高效开发实战——Django、Tornado、Flask、Twisted 本书源代码

    Python高效开发实战——Django、Tornado、Flask、Twisted 本书源代码 Python高效开发 实战 也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究...

    Python——django入门教程PPT课件.pptx

    Django 是一个由 Python 编写的开源的 Web 应用框架。Django 的主要目的是简介、快速的开发数据库驱动的网站——动态网站。Django 强调代码复用,多个组件可以方便以“插件”形式服务于整个框架。Django 强调快速...

    python web框架之Django

    此文件是关于python web框架之Django的内容,涵盖的基本比较全面。注意,这篇文档不是代码代码形式的,是对基础的所有文字性概括,还有具体操作,有包含简单的代码实现步骤

    Python高效开发实战——Django、Tornado、Flask、Twisted

    第2部分是框架篇,学习当前最流行的PythonWeb框架,即Django、Tornado、Flask和Twisted,达到对各种Python网络技术融会贯通的目的;第3部分是实战篇,分别对4种框架进行项目实践,利用其各自的特点开发适用于不同...

    Django python web 框架开发,网上商城平台(练手项目)

    3.django框架,pip install django 然后解包 代码.zip文件,进入manage.py所在目录 执行python3 manage.py syncdb或者migrate 如果不提示新建管理员,则可以使用createsuperuser命令(管理员是登陆后台模块的) ...

    PYTHON之Django Web框架源码下载

    Django框架是Python编程语言驱动的一个开源模型-视图-控制器(MVC)风格的Web应用程序框架。使用 Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。 Django框架的核心组件有: 1、用于...

    Python Web 框架,第 1 部分 使用 Django 和 Python 开发 Web 站点.doc

    标题与描述中的关键词“Python Web框架”,“Django”,“Python开发Web站点”明确指出了本文档的主题,即使用Python编程语言与Django框架进行Web应用开发。文档内容虽然包含了一些无法解析的[pic]标记,但核心信息...

    Python web开发框架Django小例子

    Python Web开发框架Django是一个强大的、高效的开源框架,用于快速构建高质量的Web应用程序。这个小例子将引导我们深入了解Django的基础知识和核心概念。 首先,`mysite`这个文件名通常对应于Django项目的根目录。...

    Python Web Development With Django

    本书《Python Web Development With Django》是一本关于使用Python和Django框架进行Web开发的专业书籍。与其他市场上已有的Django书籍相比,本书的独特之处在于它在三个方面进行了均衡的探讨:Django的基础知识、...

    使用Python Web框架Django开发的一个B2C网上蔬果商城源代码

    使用Python Web框架Django开发的一个B2C网上蔬果商城,包含用户、商品、购物车、订单等模块等等,使用了Celery异步任务队列,MySQL数据库,Redis数据库,FastDFS分布式的图片存储服 务,Nginx负载均衡服务器,uWSGI...

    Django+Vue:Python Web全栈开发

    给大家分享一套课程——Django+Vue:Python Web全栈开发(基于Django4.1),已完结10章,附源码。

    基于python框架django实现的个人博客管理系统包含前端+后台

    基于python框架django实现的个人博客管理系统包含前端+后台 运行环境 django1.10+python3+sublime text3+Navicat Premium+cmd命令 项目技术 django+python+sql+cmd+html+css+jquery 使用分页插件,jquery实现万年历...

    Python Web Development with Django.pdf

    《Python Web Development with Django》是专门讲解如何使用Python语言和Django框架进行Web开发的一本书。这本书属于“Developer’s Library”系列,该系列为程序员提供高质量的编程参考书籍和教程。该系列书籍由...

    基于Python+Django框架搭建的任务管理Saas平台源码.zip

    基于Python Django框架搭建的任务管理Saas平台源码 基于Python Django框架搭建的任务管理Saas平台源码 基于Python Django框架搭建的任务管理Saas平台源码 基于Python Django框架搭建的任务管理Saas平台源码 ...

    pythonWeb框架Django-2.1

    Python Web框架Django是用于构建高效、优雅且实用的Web应用程序的强大工具。Django 2.1是这个著名框架的一个版本,它包含了多项改进和新特性,旨在提升开发者的工作效率和应用性能。在这个版本中,Django进一步强化...

    2020年web开发需要的python框架:Django.pdf

    Django是一个基于Python的自由开源Web应用框架,使用MTV(Model-Template-View)模型架构。该框架于2005年发布,最初用于开发内容管理系统(CMS),后来逐渐演变为一个功能完整的Web框架。 Django的主要特点之一是...

    python开发web框架django使用教程

    Python Django是一种流行的Web开发框架,它提供了一个高效、灵活和可扩展的开发环境。下面是 Python Django框架的使用教程: 安装Django 1. 下载Django-1.8.2.tar.gz压缩包,并将其解压到C盘下,例如C:\Django-...

Global site tag (gtag.js) - Google Analytics