Django学习笔记-站点管理

Django学习笔记-站点管理

django.contrib

Django自动管理工具是django.contrib的一部分。django.contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框架就是由众多包含附加组件(add-on)的基本代码构成的。

管理工具是本书讲述django.contrib的第一个部分。从技术层面上讲,它被称作django.contrib.admin。django.contrib中其它可用的特性,如用户鉴别系统(django.contrib.auth)、支持匿名会话(django.contrib.sessioins)以及用户评注系统(django.contrib.comments)。

激活管理界面

第一步:

settings文件中:

  1. INSTALLED_APPS中包含:
    ‘django.contrib.admin’
    ‘django.contrib.auth’
    ‘django.contrib.contenttypes’
    ‘django.contrib.sessions’

  2. MIDDLEWARE_CLASSES中包含:
    ‘django.middleware.common.CommonMiddleware’
    ‘django.contrib.sessions.middleware.SessionMiddleware’
    ‘django.contrib.auth.middleware.AuthenticationMiddleware’

第二步:

创建超级用户,将’django.contrib.auth’加入到INSTALLED_APPS后,才可使用如下命令进行创建:
python manage.py createsuperuser

注意:
在本例中,我们通过上述命令创建了一个超级用户,用户名是admin,密码是4062324zane

第三步:

在urls.py文件中把URLconf的admin路径注释去掉,保证内容存在:

# Include these import statements...
from django.contrib import admin
admin.autodiscover()
# And include this URLpattern...
urlpatterns = patterns('',
# ...
(r'^admin/', include(admin.site.urls)),
# ...
)

管理工具

在Django管理也中,每一种数据类型都有一个change listedit list
- change list:显示数据库中所有的可用对象
- edit list:可以添加、更改和删除数据库中的记录

添加其他语言

如果母语不是英语,可以添加本地语言配置,需要在settings.py中添加:
‘django.middleware.locale.LocaleMiddleware’
但是一定要保证它必须是在’django.contrib.sessions.middleware.SessionMiddleware’之后。

编辑用户信息

在管理页面中点击【用户】进入用户信息详细配置页面,在这个页面中可以对用户的全部信息进行配置,即相当于操作数据库中的auth_user表。

注意:
如果要修改用户的密码,必须点击密码字段下的“这个表单(change password form)”,而不是直接更改字段值中的哈希码。

将自定义的Models加入到Admin管理中

在mysite/books目录下的admin.py文件中增加如下内容:

from django.contrib import admin
from books.models import Publisher, Author, Book

admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)

注意:

  1. 需要重新启动runserver才能生效;

  2. 在Add book页面中http://127.0.0.1:8000/admin/books/book/add/,外键publisher是用一个选择框显示,多对多字段author用一个多选框显示,点击两个字段后的绿色加号,可以添加相关记录。

Admin是如何工作的

当服务启动后,Django从urls.py引导URLConf,然后执行admin.autodiscover()语句,这个函数遍历INSTALLED_APPS配置,并且存在相关的admin.py文件,如果在指定的APP目录下找到admin.py,它就执行其中的代码。

在books应用程序目录下的admin.py文件中,每次调用admin.site.register()都将那个模块注册到管理工具中。

管理工具之为明确注册的模块显示一个编辑/修改界面。

应用程序django.contrib.auth包含自身的admin.py,所以Users和Groups能在管理工具中自动显示,其他的django.contrib应用程序,如django.contrib.redirects,其它从网上下载的第三方Django应用程序也一样,都会自行添加到管理工具。

综上所述,管理工具其实就是一个Django应用程序,包含自己的模块、模板、视图和URLpatterns。可以在/usr/local/lib/python2.7/dist-packages/django/contrib/目录下查看它的模板、视图、URLpatterns。

设置字段可选

如果想指定某个字段为可选,只需要修改models.py文件,在指定字段上加上blank=True即可:

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField(blank=True)

    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)

注意:

所有字段都默认blank=False,默认不允许输入空值。

设置日期型和数字型字段可选

SQL指定空值叫做NULL,NULL可以表示为未知的、非法的、或其它程序指定的含义,NULL不等于空字符串,就像Python中None不同于空字符串一样。

这意味着某个字符型字段(eg:VARCHAR)的值不可能同时包含NULL和空字符串。

Djanog为了消除歧义,在CREATE TABLE语句时自动为每个字段显式加上NOT NULL:

CREATE 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值