Django自动生成Admin后台管理页面

上回介绍了Django在windows下的环境搭建,今天介绍Django的杀手锏级应用:Admin的生成。为了能够讲明白,下面简要说一下环境:Django版本:Django1.1.1  简单示例:Blog  数据库:sqlite3
1,新建一个Project
只要你上回你能顺利配置好Django1.1.1的环境,你现在可以打开Dos控制台,来到你想安放Project的目录下;我把Project(命名为v111)暂且放到study_django目录下,于是Dos下输入指令:
d:  ,回车
cd study_django  ,回车
这时来到了想到的目录下,接着新建Project
django-admin.py startproject v111  ---(django-admin.py是django的全局命令,我们上回已经把它加入系统变量里了,startproject 表示新建工程,v111是工程的名称)
这时你在目录下,可以看到有文件生成了,比如:__init__.py manage.py settings.py urls.py 这四个python文件,这就是整个Project的全部文件,manage.py是主角,我们之后就使用它生成自己想要的东西了,django-admin.py这个全局模块,当我们新建完毕Project,就很少用到它了,先忘记它吧。

Project算是建立好了,在Project里新建个App (App,暂且叫应用吧,一个Project里可以放多个独立的应用A,Django提倡App的热插拔,很好的设计理念),进入刚才新建的Project里
cd v111 回车 
来到了Project的目录下,
manage.py startapp blog 回车
这时打开Project的目录 发现了一个文件夹blog,里面有 __init__.py models.py test.py urls.py四个文件,这就是一个独立的blog App了。
太好了,整个Project就这么几个文件, 两行的django命令
django-admin.py startproject v111 
manage.py startapp blog
就可以完成了,都简单不过的了。接下来我们可以集中精力,编写自己的网站了,借助Python简单的特点,下来的步骤也不会写很多代码。

2 设置一下Project全局变量,就是让Project更好地跑我们的blog应用。
首先在Project目录下,找到settings.py 指定数据库:
DATABASE_ENGINE = 'sqlite3'          
DATABASE_NAME = 'study_django_v111.db3'
DATABASE_USER = ''            
DATABASE_PASSWORD = ''        
DATABASE_HOST = ''           
DATABASE_PORT = ''

 

以上的代码:DATABASE_ENGINE = 'sqlite3'是指定数据类型,我们使用内置的 sqlite3
DATABASE_NAME = 'study_django_v111.db3' 是数据库的名字,我们指定的是 study_django_v111.db3

然后把blog和admin应用 插到Project里
INSTALLED_APPS = (
    
'django.contrib.auth',
    
'django.contrib.contenttypes',
    
'django.contrib.sessions',
    
'django.contrib.sites',
    
'django.contrib.admin',    
    
'blog'
)

 

INSTALLED_APPS 本来就用一些基本的应用,我们只需写入两行代码
'django.contrib.admin',    
'blog',

Project基本的全局变量已经设置好了.
接下来关键的东西是编写blog的实体,在blog/models.py下,写我们需要的实体字段:
#coding=utf-8
from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class Blog(models.Model):   
    title=models.CharField(u"标题",max_length=60)
    content=models.TextField(u"正文")
    user=models.ForeignKey(User,verbose_name=u"作者")
    category=models.CharField(u"类型",max_length=20)
    status=models.NullBooleanField(u"可用")
    created_at=models.DateTimeField(u"建立时间",auto_now_add=True)
    updated_at=models.DateTimeField(u"修改时间",auto_now=True)
    
    
class Meta:
        verbose_name        = u"A.博客"
        verbose_name_plural = u"A.博客列表"
        ordering            = ("-created_at",)
        get_latest_by       = "created_at"
    
    
def __unicode__(self):
        
return self.title

 


为了简单说明,整个models模块就是一个实体类Blog。
在blog文件夹了,新建admin.py模块(blog/admin.py) ,在该模块下编写代码,让Django自动生成Admin应用,写入代码如下:
#coding=utf-8
from django.contrib import admin
from models import *

class BlogAdmin ( admin.ModelAdmin ) :
    list_display = ( 'user''title','category','status''created_at','updated_at',)
    list_display_links =('title',)
    list_filter = ( 'user','title','status''created_at''updated_at',)
    ordeing = ( '-created_at' ,  '-updated_at',)
    search_fields = ( 'title''user','content',)
    
admin.site.register ( Blog, BlogAdmin )

 


这时该到收尾工作了,我们回到Dos控制台,执行命令:
manage.py syncdb 回车
Django就会根据你刚才的 编写的models.py下的Blog实体类生成 数据表,同时也会生成一些基本的表,就看Project下的INSTALLED_APPS插入了什么App。
回车后你会看到控制台表的全部过程,这个不用我们操心,就全部交个Django来做好了,但是生成过程中,Django需要输入一个后台的超级管理员账号,
出来Would you like to create one now? (yes/no):的时候,输入 yes 回车,按照指令提示,完成新建工作即可。
我暂且这么起名:管理员 baoyalv 密码 pwd123 Email b@163.com

显示的语句如下:
D:\study_django\v111>manage.py syncdb
Creating table auth_permission
Creating table auth_group
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table blog_blog

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): yes
Username: baoyalv
E-mail address: b@163.com
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Message model
Installing index for admin.LogEntry model
Installing index for blog.Blog model

等Django执行完了以上的工作,我们在控制台输入 :manage.py runserver 回车
来启动整个Project,当Django启动了内置的web 服务器,我们就可以浏览我们的admin 页面了:
打开浏览器,在地址栏上 输入地址:http://127.0.0.1:8000/admin
怎么样,登录页面出来了吧,用刚才的我们新建的管理员账号登陆进去,你就能看到 blog 和user group的相关模块后台管理了。

 

 

 

 


 

posted @ 2010-03-06 16:37  baoyalv  阅读(2686)  评论(0编辑  收藏  举报