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

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

参考资料:

https://docs.djangoproject.com/en/1.3/intro/tutorial02/#activate-the-admin-site

其它说明:

1. 有时候想根据己有数据库生成Model,Django也是可以做到的:python manage.py inspectdb >models.py




上回介绍了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的相关模块 后台 管理了。

 

 

 

 


 

转载请注明原地址: http://baoyalv.com/blog/baoyalv/other/2010/03/06/26
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值