Python框架之Django学习笔记(十二)

Django站点管理

  十一转眼结束,说好的充电没能顺利开展,反而悠闲的看了电视剧以及去影院看了新上映的《心花路放》、《亲爱的》以及《黄金时代》,说好的劳逸结合现在回首看去,如果睡觉吃饭算是的话,那倒是挺多。是啊,十一过去了,也该收收心,开始准备过年了。啊,不对,准备工作。扯淡到此结束,接下来,开始学习Django的站点管理。

  管理界面有一问题: 创建它太繁琐。 当你开发对公众的功能时,网页开发是有趣的,但是创建管理界面通常是千篇一律的。 你必须认证用户,显示并管理表格,验证输入的有效性诸如此类。 这很繁琐而且是重复劳动。Django 在对这些繁琐和重复的工作进行了哪些改进? 它用不能再少的代码为你做了所有的一切。 Django 中创建管理界面已经不是问题。本次博客是关于 Django 的自动管理界面。 这个特性是这样起作用的: 它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即工作。

  django.contrib 包

  Django自动管理工具是django.contrib的一部分。django.contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框架就是由众多包含附加组件(add-on)的基本代码构成的。 你可以把django.contrib看作是可选的Python标准库或普遍模式的实际实现。 它们与Django捆绑在一起,这样你在开发中就不用“重复发明轮子”了。

  管理工具是django.contrib的一个部分。从技术层面上讲,它被称作django.contrib.admin。django.contrib中其它可用的特性,如用户鉴别系统(django.contrib.auth)、支持匿名会话(django.contrib.sessioins)以及用户评注系统(django.contrib.comments)。在成为一个Django专家以前,你将会知道更多django.contrib的特性。 目前,你只需要知道Django自带很多优秀的附加组件,它们都存在于django.contrib包里。

  激活管理界面

  第一步,对你的settings文件做如下这些改变:

  • ‘django.contrib.admin‘加入setting的INSTALLED_APPS配置中 (INSTALLED_APPS中的配置顺序是没有关系的, 但是我们喜欢保持一定顺序以方便人来阅读)
  • 保证INSTALLED_APPS中包含‘django.contrib.auth‘‘django.contrib.contenttypes‘‘django.contrib.sessions‘,Django的管理工具需要这3个包。 (如果你跟随本文制作mysite项目的话,那么请注意我们在上次学习的时候把这三项INSTALLED_APPS条目注释了。现在,请把注释取消。)
  • 确保MIDDLEWARE_CLASSES 包含‘django.middleware.common.CommonMiddleware‘‘django.contrib.sessions.middleware.SessionMiddleware‘‘django.contrib.auth.middleware.AuthenticationMiddleware‘ 。(再次提醒,如果有跟着做mysite的话,请把在前面加的注释取消。)

  第二步,运行 python manage.py syncdb 。这一步将生成管理界面使用的额外数据库表。 当你把‘django.contrib.auth‘加进INSTALLED_APPS后,第一次运行syncdb命令时, 系统会请你创建一个超级用户。 如果你不这么作,你需要运行python manage.py createsuperuser来另外创建一个admin的用户帐号,否则你将不能登入admin (提醒一句: 只有当INSTALLED_APPS包含‘django.contrib.auth‘时,python manage.py createsuperuser这个命令才可用.)

  第三,将admin访问配置在URLconf(记住,在urls.py中). 默认情况下,命令django-admin.py startproject生成的文件urls.py是将Django admin的路径注释掉的,你所要做的就是取消注释。 请注意,以下内容是必须确保存在的:

 1 # Include these import statements...
 2 from django.contrib import admin
 3 admin.autodiscover()
 4
 5 # And include this URLpattern...
 6 urlpatterns = patterns(‘‘,
 7     # ...
 8     (r‘^admin/‘, include(admin.site.urls)),
 9     # ...
10 )  

 当这一切都配置好后,现在你将发现Django管理工具可以运行了。 启动开发服务器(如前:`` python manage.py runserver`` ),然后在浏览器中访问:http://127.0.0.1:8000/admin/

管理界面介绍

 管理界面的设计是针对非技术人员的,所以它应该是自我解释的。 尽管如此,这里简单介绍一下它的基本特性。

 你看到的第一件事是如下图所示的登录界面。

 

  你要使用你原来设置的超级用户的用户名和密码。 如果无法登录,请运行“ python manage.py createsuperuser” ,确保你已经创建了一个超级用户。

  一旦登录了,你将看到管理页面。 这个页面列出了管理工具中可编辑的所有数据类型。 现在,由于我们还没有创建任何模块,所以这个列表只有寥寥数条类目: 它仅有两个默认的管理-编辑模块:用户组(Groups)和用户(Users)。

  其他语言:

  想一秒钟改变语言的类型么,Django完全可以很轻松的做到,打开settings.py文件,找到下面部分:

1 LANGUAGE_CODE = ‘en-us‘
2 #LANGUAGE_CODE = ‘de-ch‘
3 #LANGUAGE_CODE = ‘de-at‘
4 #LANGUAGE_CODE = ‘pt-br‘
5 #LANGUAGE_CODE = ‘zh-cn‘

  将第一行改为第五行,刷新下界面,你便发现你的管理站点已经变成了全中文版。

将你的Models加入到Admin管理中

  让我们将自己的模块加入管理工具中,这样我们就能够通过这个漂亮的界面添加、修改和删除数据库中的对象了。 我们将继续上次的“ book” 例子。在其中,我们定义了三个模块:Publisher 、 Author 和 Book 。

  打开“books” 目录下(“mysite/books”)的文件:“admin.py” ,然后输入以下代码:  

1 from django.contrib import admin
2 from books.models import Publisher, Author, Book
3
4 admin.site.register(Publisher)
5 admin.site.register(Author)
6 admin.site.register(Book)

  完成后,打开页面 “http://127.0.0.1:8000/admin/” ,你会看到一个Books区域,其中包含Authors、Books和Publishers。

  现在你拥有一个功能完整的管理界面来管理这三个模块了。 很简单吧!

时间: 2024-10-10 01:18:19

Python框架之Django学习笔记(十二)的相关文章

Python框架之Django学习笔记(二)

安装Django 我是在windows下安装的python以及django,下面的链接可以下载Django: http://www.djangoproject.com/download/ 1.下载 Django-1.6.6.tar.gz压缩文件 2.解压缩 3.在命令行下,进入Django的目录下F:\Django-1.6.6\Django-1.6.6执行python setup.py install,此时你可以喝点水等待一下. 当然,如果你很好奇: Django将被安装到你的Python安装目

Python框架之Django学习笔记(十七)

Django框架之表单(续二) PS:本博客欢迎转发,但请注明博客地址及作者~ 博客地址:http://www.cnblogs.com/voidy/ <.)#)))≦ 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部分了,不过也够我们平时搭个简易的网站或者个人博客什么的.希望通过这一系列的博文,让大家也从中体会到Django框架的魅力所在,如果很不幸,你没有体会到,只能说明我水

Python框架之Django学习笔记(十一)

话说上次说到数据库的基本访问,而数据库我们主要进行的操作就是CRUD,也即是做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete),俗称:增删改查.废话不多说,学习开始. 插入和更新数据 你已经知道怎么做了: 先使用一些关键参数创建对象实例,如下: 1 >>> p = Publisher(name='Apress', 2 ... address='2855 Telegraph Ave.', 3 ... city='Berk

Python框架之Django学习笔记(十)

又是一周周末,如约学习Django框架.在上一次,介绍了MVC开发模式以及Django自己的MVT开发模式,此次,就从数据处理层Model谈起. 数据库配置 首先,我们需要做些初始配置:我们需要告诉Django使用什么数据库以及如何连接数据库.假定你已经完成了数据库服务器的安装和激活,并且已经在其中创建了数据库(例如,用 CREATE DATABASE语句). 如果你使用SQLite,不需要这步安装,因为SQLite使用文件系统上的独立文件来存储数据.和前面章节提到的 TEMPLATE_DIRS

Python框架之Django学习笔记(十六)

Django框架之表单(续) 今天简直无力吐槽了,去了香山,结果和网上看到的简直是天壤之别啊,说好的香山的枫树呢?说好的香山的红叶呢?说好的漫山遍野一片红呢?本以为在山上,一口气爬上去,沿路基本都是翠绿的松柏,松柏啊亲,难道我不仅红绿色盲,还是一个松枫不辨星人!更坑爹的是回来的时候,排队等公交等了近三个小时,你说为什么不自驾游?没办法,穷人开不起撒.总之,一句话总结香山之旅: 如果你恨他/她,就让他/她周末去香山吧,如果他/她爱你,就让他/她周末带你去香山吧!恩,闲扯到此为止,虽然挺累,不过学习

Python框架之Django学习笔记(十五)

表单 从Google的简朴的单个搜索框,到常见的Blog评论提交表单,再到复杂的自定义数据输入接口,HTML表单一直是交互性网站的支柱.本次内容将介绍如何用Django对用户通过表单提交的数据进行访问.有效性检查以及其它处理. 与此同时,我们将介绍HttpRequest对象和Form对象. 从Request对象中获取数据 在前面讲述View的函数时已经介绍过HttpRequest对象了,但当时并没有讲太多. 让我们回忆下:每个view函数的第一个参数是一个HttpRequest对象,就像下面这个

Python框架之Django学习笔记(十四)

Django站点管理(续·完) 本想昨天更新的,谁曾想昨天竟然是工作日!我就不吐槽昨天加班到十一点多了,需求增加无疑让我等蛋疼不已,忽而想起一首打油诗: 明月几时有,把酒问群友.不知这次版本,今晚能出否.我欲推倒重构,又恐项目经理,深夜对我吼.增删改代码,好像没保存… 深呼吸,看屏幕,泪在流.不应有恨,谁没忘记存代码?人有悲欢离合,码有丢失冲突,此事古难全.但愿人长久,leader别发现. 废话少说,进入今天的正题,Django站点管理学习开始. 自定义列表 让我们更深一步:自定义Author模

Python框架之Django学习笔记(六)

模板 上篇博文学习了动态视图,但是,视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python 代码之中. 1 def current_datetime(request): 2 now = datetime.datetime.now() 3 html = "<html><body>It is now %s.</body></html>" % now 4 return HttpResponse(html) 尽管这种技术便

Python框架之Django学习笔记(九)

模型 之前,我们用 Django 建造网站的基本途径: 建立视图和 URLConf . 正如我们所阐述的,视图负责处理一些主观逻辑,然后返回响应结果. 作为例子之一,我们的主观逻辑是要计算当前的日期和时间. 在当代 Web 开发中,主观逻辑经常牵涉到与数据库的交互. 数据库驱动网站在后台连接数据库服务器,从中取出一些数据,然后在 Web 页面用漂亮的格式展示这些数据. 这个网站也可能会向访问者提供修改数据库数据的方法. 许多复杂的网站都提供了以上两个功能的某种结合. 例如 Amazon.com