• Django中的管理工具Admin


    Django系列教程:八、Django中的管理工具Admin

    注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。

     

    上一章我们讲到的模型需要通过一定的实践才能逐步掌握熟练,这一章我们来讲讲Django中的管理工具Admin。

     

    我们先来解决几个问题,再来学习。

     

    1、什么是Admin?

     

    Admin是django.contrib包中的第一个部分,说白了就是django.contrib.admin,而contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框架就是由众多包含附加组件(add-on)的基本代码构成的。 你可以把django.contrib看作是可选的Python标准库或普遍模式的实际实现。 它的存在简化了很多重复性的操作,让开发更加迅速方便。

     

    2、为什么要用Admin?

     

    对于某一类网站,管理界面是基础设施中非常重要的一部分。 这是以网页和有限的可信任管理者为基础的界面,它可以让你添加,编辑和删除网站内容。 一些常见的例子: 你可以用这个界面发布博客,后台的网站管理者用它来润色读者提交的内容,你的客户用你给他们建立的界面工具更新新闻并发布在网站上,这些都是使用管理界面的例子。但是管理界面有一问题: 创建它太繁琐。 当你开发对公众的功能时,网页开发是有趣的,但是创建管理界面通常是千篇一律的。 你必须认证用户,显示并管理表格,验证输入的有效性诸如此类。 这很繁琐而且是重复劳动。

     

    所以我们选择使用Django自带的admin管理界面。至于以后还可以使用contrib中的其他诸如auth等等功能,在以后的教程中将会有所涉及。

     

    3、开始使用

     

    好了,在了解了上述几个问题后咱们开始一步一步的配置好一个Admin管理界面,我们从头开始吧。

     

    1.创建Project为testadmin

     

    django-admin.py startproject testadmin

     

    文档结构如下:

     

    复制代码
    D:\DJCODE\TESTADMIN
    |   manage.py
    |
    \---testadmin
            settings.py
            urls.py
            wsgi.py
            __init__.py
    复制代码

     

    2.配置数据库(在postgreSQL中用pgAdmin新建了一个数据库django)

     

    复制代码
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'django',                      # Or path to database file if using sqlite3.
            # The following settings are not used with sqlite3:
            'USER': 'postgres',
            'PASSWORD': '911027',
            'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
            'PORT': '',                      # Set to empty string for default.
        }
    }
    复制代码

     

     至于如何验证是否配置成功,请参见第六章模型。

     

    3.创建一个应用为book

     

    python manage.py startapp book

     

    在book文件夹中找到models.py文件,将其代码修改为第六、七章中的代码即可,文件中代码如下:

     

    复制代码
    from django.db import models
    class Publisher(models.Model):
        name = models.CharField(max_length=30)
        address = models.CharField(max_length=50)
        city = models.CharField(max_length=60)
        state_province = models.CharField(max_length=30)
        country = models.CharField(max_length=50)
        website = models.URLField()
    class Author(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=40)
        email = models.EmailField()
    复制代码

     

    然后配置app,将其添加到settings.py文件相应的地方,如:

     

    复制代码
    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'book',#添加这一项,和前面那章不同,前面的是books,注意别搞错了
        # Uncomment the next line to enable the admin:
        # 'django.contrib.admin',
        # Uncomment the next line to enable admin documentation:
        # 'django.contrib.admindocs',
    )
    复制代码

     

    最后验证模型并且执行代码。

     

    D:\Djcode\testadmin>python manage.py validate
    0 errors found

     

    复制代码
    D:\Djcode\testadmin>python manage.py syncdb
    Creating tables ...
    Creating table auth_permission
    Creating table auth_group_permissions
    Creating table auth_group
    Creating table auth_user_groups
    Creating table auth_user_user_permissions
    Creating table auth_user
    Creating table django_content_type
    Creating table django_session
    Creating table django_site
    Creating table book_publisher
    Creating table book_author
    
    You just installed Django's auth system, which means you don't have any superuse
    rs defined.
    Would you like to create one now? (yes/no): 
    复制代码

     

    然后再按照下图操作即可。

     

     

    创建后的auth的用户名为:django 密码为:911027

     

    说明:为什么直接跳到Auth的创建过程了呢?因为在settings.py中INSTALLED_APP里面并没有注释掉:

     

        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',

     

    只要在其前面加上#号即可。

     

    4.配置admin和url

     

    将settings.py中的INSTALLED_APP中的admin选项前面的#好去掉。

     

     

        # Uncomment the next line to enable the admin:
        'django.contrib.admin',
        # Uncomment the next line to enable admin documentation:
        'django.contrib.admindocs',

     

     

    更改urls.py文件代码如下:

     

    复制代码
    from django.conf.urls import patterns, include, url
    
    # Uncomment the next two lines to enable the admin:
    from django.contrib import admin#将注释取消
    admin.autodiscover()#将注释取消
    
    urlpatterns = patterns('',
        # Examples:
        # url(r'^$', 'testadmin.views.home', name='home'),
        # url(r'^testadmin/', include('testadmin.foo.urls')),
    
        # Uncomment the admin/doc line below to enable admin documentation:
        url(r'^admin/doc/', include('django.contrib.admindocs.urls')),#将注释取消
    
        # Uncomment the next line to enable the admin:
        url(r'^admin/', include(admin.site.urls)),#将注释取消
    )
    复制代码

     

    输入:http://127.0.0.1:8000/admin/ 访问后看到如下界面。

     

     

    输入用户名django和密码911027即可登陆。

     

     当然如果你的母语不是英语,而你不想用它来配置你的浏览器,你可以做一个快速更改来观察Django管理工具是否被翻译成你想要的语言。 仅需添加django.middleware.locale.LocaleMiddleware 到settings.py文件中MIDDLEWARE_CLASSES设置中,并确保它在django.contrib.sessions.middleware.SessionMiddleware之后。

     

    5.将Models添加到Admin管理界面中

     

    在上一步进入到Admin管理界面后,你只能看到几项简单的操作,其实我们最重要的是对book这个app进行操作,比如添加相关的信息等,那么我们就需要将其注册到Admin管理界面中来。具体如下:

     

    在book目录下创建admin.py文件,其代码如下:

     

    from django.contrib import admin
    from book.models import Publisher, Author #这里需要特别注意,此处是book而不要因为看到别的书写成mysite.book
    admin.site.register(Publisher)
    admin.site.register(Author)

     

    完成后重启web服务,在登陆:http://127.0.0.1:8000/admin/ 界面,你会注意到多了点什么呢?如下图:

     

     

    好了,现在可以在这里添加些数据了,你再去数据库看看是不是加上了呢!至于Admin的工作原理和一些使用方法,大家百度百度,自己动手吧。下一章我们讲解一下表单的创建和一些简单的处理吧。

     

    本人既是python的初学者也是Django的初学者,写这一系列教程的目的就是为了加深自己的理解,希望大家多多包涵和指教,有什么问题请留言,谢谢。

     

    鹜落霜洲,雁横烟渚,分明画出秋色。暮雨乍歇,小楫夜泊,宿苇村山驿。何人月下临风处,起一声羌笛。离愁万绪,闲岸草、切切蛩吟似织。 为忆芳容别后,水遥山远,何计凭鳞翼。想绣阁深沉,争知憔悴损,天涯行客。楚峡云归,高阳人散,寂寞狂踪迹。望京国。空目断、远峰凝碧。

     

     

     

    分类: Django
    标签: Django
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。上一章我们讲到的模型需要通过一定的实践才能逐步掌握熟练,这一章我们来讲讲Django中的管理工具Admin。我们先来解决几个问题,再来学习。1、什么是Admin?Admin是django.contrib包中的第一个部分,说白了就是django.contrib.admin,而contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框架就是由众多包含附加组件(add-on)的基本代码构成的。 你可以把django.contrib看作是可选阅读全文
    posted @ 2013-06-09 10:50 倾杯天涯 阅读(387) | 评论 (0) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。上一章我们讲到了模型的一些基本概念以及postgreSQL数据库的简单配置,接下来我们就通过一个简单的例子来讲述一下在Django模型中是如何进行CURD操作的。所谓CURD其实就是数据的创建Create、更新Update、读取Read和删除Delete功能,要实现这些功能,以往常常需要使用SQL语句去实现,比如SELECT语句、UPDATE语句等等,但由于不同的数据库之间存在着差异,使用这些SQL语句时就会出现这样那样的问题,所以为了解决这个问题,Djang阅读全文
    posted @ 2013-06-02 22:56 倾杯天涯 阅读(61) | 评论 (0) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。因为本章篇幅略长,所以分作两节来讲,这一节将讲解下数据库的安装,和模型的配置,下一节则是讲解一下Django里面如何对数据库进行各种操作。一些知识:A:什么是模型?如果熟悉MVC的朋友应该知道M其实就是模型Model的意思,即数据存取层,该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。简单点就是操作数据库的一个体系。B:为什么要用模型?因为在Python中要操作数据库则需要数据库驱动,这些驱动有内置的(sqlite3阅读全文
    posted @ 2013-05-21 12:23 倾杯天涯 阅读(670) | 评论 (2) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。第四章我们讲到了模板的一些基本概念和几个常用的函数,下面我们就来讲讲如何使用Django的模板机制来处理静态网页模板。下面我们用前面几章讲过的内容从新新建一个工程,具体操作代码如下,有不明白的请翻看前面的内容。django-admin.py startproject testtemplate#创建新的站点python manage.py runserver#运行web服务进入testtemplate文件夹再创建template文件夹,然后再在template文阅读全文
    posted @ 2013-05-19 20:36 倾杯天涯 阅读(509) | 评论 (0) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。为了解决学习Django学习过程中遇到的一些问题,特地列出此章,在以后的教程中,如果还有什么问题也将逐渐更新到此处。[一:中文乱码问题]Django系列教程的第四章有人提问刚刚更改Django中的Templates文件,发现在模版中加入中文字符后Django页面显示乱码,改一改后又会报错,我稍微看了一下,因为教程中使用的都是英文并没有涉及到这个问题,所以我花了点时间搞出几个乱码错误,最后得到成功的配置如下:首先写入中文的html文件必须为utf-8编码,将文件阅读全文
    posted @ 2013-05-15 18:07 倾杯天涯 阅读(364) | 评论 (0) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。在上一章你可能已经发现了这样的问题,就是在视图返回文本的时候,HTML代码被硬编码在了python的代码中。如%s等等。像这样写往往使得程序更加复杂,一旦修改起来又显得十分的麻烦,而且HTML代码程序员不见得会python代码,现在的开发一般都会使得HTML前台页面和Python后台分离,也就是前台只负责显示页面,后台只负责处理数据和其他操作。因此,模板显得尤为重要。那么,什么是模板呢?模板是一个文本,用于分离文档的表现形式和内容。 模板定义了占位符以及各种用阅读全文
    posted @ 2013-05-13 13:53 倾杯天涯 阅读(983) | 评论 (9) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。前一章我们简略的讲解了下Django的视图和Url的配置,那么这一章我们就通过一个简单的例子来讲解下动态视图和动态Url。照例使用python manage.py runserver 命令启动web服务。下面我们将用datetime模块显示和计算时钟。打开上一章建立的view.py文件,在原有代码后面加入以下代码:import datetimedef current_datetime(request): now=datetime.datetime.now...阅读全文
    posted @ 2013-05-11 21:56 倾杯天涯 阅读(611) | 评论 (0) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。前一章中,我们解释了如何建立一个 Django 项目并启动 Django 开发服务器。 在这一章中,我将通过一个helloworld来讲解Django创建动态网页的基本知识。目标:创建一个页面,打印出helloworld关于视图View和路由Url的具体含义随着学习的深入和自己动手编程慢慢加深理解,下面一段话是djangobook2里面的一段。如果你曾经发布过Hello world页面,但是没有使用网页框架,只是简单的在hello.html文本文件中输入Hel阅读全文
    posted @ 2013-05-10 10:47 倾杯天涯 阅读(716) | 评论 (5) 编辑
     
    摘要: 注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。安装第一步:下载python3.3.1和Django1.5.1并安装,下载地址如下:python3.3.1:http://www.python.org/download/python的安装大家请自行百度。Django1.5.1:http://www.djangoproject.com/download/将下载后的Django-1.5.1.tar.gz解压到一个文件夹,打开cmd命令提示符,使用cd命令进入到解压后的文件夹中,再按照安装界面输入命令即可。pyth阅读全文
    posted @ 2013-05-09 19:41 倾杯天涯 阅读(708) | 评论 (4) 

  • 相关阅读:
    HRBUST 1849 商品中心
    UVA 11600 Masud Rana
    Codeforces Round #580 (Div.1)
    loj 6270 数据结构板子题
    luogu P1758 [NOI2009]管道取珠
    luogu P1852 [国家集训队]跳跳棋
    51nod 2589 快速讨伐
    SICP_3.9-3.11
    SICP_3.7-3.8
    SICP_3.5-3.6
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3129617.html
Copyright © 2020-2023  润新知