15325@qq.com
|
2.0/chapter06/#77 |
2009-11-10 17:05:37
|
这个页面列出了管理工具中所有可编辑的数据类型。
|
|
15325@qq.com
|
2.0/chapter06/#76 |
2009-11-10 17:03:41
|
一旦登录了,你将看到管理页面。
|
|
15325@qq.com
|
2.0/chapter06/#74 |
2009-11-10 17:02:49
|
如果无法登录,请运行<literal> python manage.py createsuperuser</literal> ,确保你已经创建了一个超级用户。
|
|
15325@qq.com
|
2.0/chapter06/#65 |
2009-11-10 17:00:32
|
尽管如此,这里简单介绍一下它的基本特性。
|
|
15325@qq.com
|
2.0/chapter06/#62 |
2009-11-10 16:57:57
|
,使用管理工具。
|
|
15325@qq.com
|
2.0/chapter06/#60 |
2009-11-10 16:56:59
|
启动开发服务器(如前:<literal> python manage.py runserver</literal> ),然后在浏览器中访问:<literal>http://127.0.0.1:8000/admin/</literal> |
|
15325@qq.com
|
2.0/chapter06/#59 |
2009-11-10 16:53:53
|
当这一切都配置好后,现在你将发现Django管理工具可以运行了。
|
|
15325@qq.com
|
2.0/chapter06/#56 |
2009-11-10 16:51:46
|
请注意,以下内容是必须确保存在的:
|
|
15325@qq.com
|
2.0/chapter06/#46 |
2009-11-10 14:40:39
|
确保<literal>MIDDLEWARE_CLASSES</literal> 包含<literal>'django.middleware.common.CommonMiddleware'</literal> 、<literal>'django.contrib.sessions.middleware.SessionMiddleware'</literal> 和<literal>'django.contrib.auth.middleware.AuthenticationMiddleware'</literal> 。(再次提醒,如果有跟着做mysite的话,请把在第五章做的注释取消。)
|
|
15325@qq.com
|
2.0/chapter06/#46 |
2009-11-10 14:39:26
|
确保<literal></literal> 包含<literal></literal> 、<literal></literal> 、和<literal></literal> 。(再次提醒,如果有跟着做mysite的话,请把在第五章做的注释取消。)
|
|
15325@qq.com
|
2.0/chapter06/#44 |
2009-11-10 14:35:27
|
(如果你跟随本文制作mysite项目的话,那么请注意我们在第五章的时候把这三项INSTALLED_APPS条目注释了。现在,请把注释取消。)
|
|
15325@qq.com
|
2.0/chapter06/#31 |
2009-11-10 14:30:29
|
目前,你只需要知道Django自带很多优秀的附加组件,它们都存在于django.contrib包里。
|
|
15325@qq.com
|
2.0/chapter06/#30 |
2009-11-10 14:27:20
|
管理工具是本书讲述django.contrib的第一个部分。从技术层面上讲,它被称作django.contrib.admin。django.contrib中其它可用的特性,如用户鉴别系统(django.contrib.auth)、支持匿名会话(django.contrib.sessioins)以及用户评注系统(django.contrib.comments)。这些,我们将在第十六章详细讨论。在成为一个Django专家以前,你将会知道更多django.contrib的特性。
|
|
15325@qq.com
|
2.0/chapter06/#28 |
2009-11-10 14:15:45
|
它们与Django捆绑在一起,这样你在开发中就不用“重复发明轮子”了。
|
|
15325@qq.com
|
2.0/chapter06/#27 |
2009-11-10 12:31:09
|
你可以把django.contrib看作是可选的Python标准库或普遍模式的实际实现。
|
|
15325@qq.com
|
2.0/chapter06/#26 |
2009-11-10 12:28:07
|
Django自动管理工具是django.contrib的一部分。django.contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框架就是由众多包含附加组件(add-on)的基本代码构成的。
|
|
xiaojay
|
2.0/chapter19/#53 |
2009-11-09 14:48:16
|
我们将详细地对以上每一步进行描述。
|
|
xiaojay
|
2.0/chapter19/#51 |
2009-11-09 14:47:23
|
第三步:在你的django settings文件中激活local中间件
|
|
xiaojay
|
2.0/chapter19/#49 |
2009-11-09 14:46:38
|
第二步:把标记的字句翻译成你要支持的语言
|
|
xiaojay
|
2.0/chapter19/#47 |
2009-11-09 14:45:41
|
第一步:在你的python代码和模板中标记需要翻译的字句
|
|
xiaojay
|
2.0/chapter19/#45 |
2009-11-09 14:44:18
|
你需要分三步使你的django程序事项国际化:
|
|
xiaojay
|
2.0/chapter19/#45 |
2009-11-09 14:44:01
|
你需要分三步使你的django程序事项国际化
|
|
anuan
|
2.0/chapter10/#84 |
2009-11-07 12:42:46
|
然后 在你的产品服务器上再实施一遍这些步骤
|
|
anuan
|
2.0/chapter10/#82 |
2009-11-07 12:41:25
|
使用Python的<literal>manage.py shell</literal>通过导入模型和选中表单(e.g.,
<literal>MyModel.objects.all()[:5]</literal> ).来核实新的字段是否被正确的添加 ,如果一切顺利,所有的语句都不会报错.
|
|
anuan
|
2.0/chapter10/#80 |
2009-11-07 12:34:42
|
开启你的数据库的交互命令界面(e.g., <literal>psql</literal> or <literal>mysql</literal> , or you can use
<literal>manage.py dbshell</literal> ). 执行一个 <literal>ALTER TABLE</literal> 语句来添加新列
|
|
anuan
|
2.0/chapter10/#78 |
2009-11-07 12:32:51
|
注意 为新字段定义的列
|
|
anuan
|
2.0/chapter10/#77 |
2009-11-07 12:32:00
|
运行 <literal>manage.py sqlall [yourapp]</literal> 来测试模型新的 <literal>CREATE TABLE</literal> 语句
|
|
anuan
|
2.0/chapter10/#75 |
2009-11-07 12:30:24
|
在你的模型里添加字段
|
|
anuan
|
2.0/chapter10/#73 |
2009-11-07 12:29:53
|
首先,进入开发者环境(也就是说 不是在发布环境里)
|
|
anuan
|
2.0/chapter10/#71 |
2009-11-07 12:27:46
|
(你<emphasis>正</emphasis>使用的是测试环境,对吧?)下面是具体的实施步骤
|
|
anuan
|
2.0/chapter10/#70 |
2009-11-07 12:25:37
|
这个鸡-蛋的问题的解决方法是在开发者环境里而不是发布环境里实现这个变化
|
|
anuan
|
2.0/chapter10/#68 |
2009-11-07 12:21:36
|
(注意:你并 <emphasis>不是非得使用</emphasis>与Django相同的SQL创建你的新列,但是这样做确实是一个好主意 ,它能让一切都保持同步)
|
|
anuan
|
2.0/chapter10/#67 |
2009-11-07 12:18:14
|
然而 这里有一个鸡生蛋蛋生鸡的问题 ,由于要想了解新列能否在SQL里表达出来(expressed) ,你需要使用Django的
<literal>manage.py sqlall</literal>命令进行查看 ,而这又需要字段已经在模型里存在了
|
|
anuan
|
2.0/chapter10/#65 |
2009-11-07 12:12:22
|
策略就是在数据库里加入要加的字段列,然后同步Django的模型添加新字段
|
|
anuan
|
2.0/chapter10/#64 |
2009-11-07 12:10:00
|
当要向一个产品设置表单(或者说是model)添加一个字段的时候,要使用的技巧是利用Django不关心表单里是否包含model里所没有的列
|
|
anuan
|
2.0/chapter10/#62 |
2009-11-07 12:03:27
|
添加字段
|
|
anuan
|
2.0/chapter10/#58 |
2009-11-07 12:02:02
|
Django<emphasis>不</emphasis>关心数据库中是否存在未被模型表示的表格。
|
|
anuan
|
2.0/chapter10/#56 |
2009-11-07 12:01:18
|
Django<emphasis>不</emphasis>关心数据库的表格中是否存在未在模型中定义的列。
|
|
anuan
|
2.0/chapter10/#56 |
2009-11-07 12:00:44
|
Django<emphasis></emphasis>关心数据库的表格中是否存在未在模型中定义的列。
|
|
IIssNan
|
2.0/chapter04/#181 |
2009-11-07 10:24:06
|
一旦有了 <literal>模板</literal> 对象,你就可以通过它渲染多个context,
|
|
IIssNan
|
2.0/chapter04/#185 |
2009-11-07 10:23:36
|
无论何时我们都可以像这样使用同一模板源渲染多个context,只进行 <literal>一次</literal>模板创建然后多次调用render()方法渲染会更为高效:
|
|
IIssNan
|
2.0/chapter04/#181 |
2009-11-07 10:19:27
|
一旦有了 <literal>模板</literal> 对象,你就可以通过它渲染多个context,例如:
|
|
IIssNan
|
2.0/chapter04/#158 |
2009-11-07 08:52:43
|
接下来,我们创建了一个模板对象 <literal>t</literal> ,把 <literal>raw_template</literal> 作为 <literal>Template</literal> 类构造函数的参数。
|
|
IIssNan
|
2.0/chapter04/#152 |
2009-11-07 08:51:36
|
让我们逐步来分析下这段代码:
|
|
IIssNan
|
2.0/chapter04/#144 |
2009-11-07 08:47:03
|
<literal>Context</literal> 和字典很类似, <literal>Context</literal> 还提供更多的功能,请看第九章。
|
|
IIssNan
|
2.0/chapter04/#130 |
2009-11-07 08:43:27
|
她的构造函数带有一个可选的参数:
|
|
IIssNan
|
2.0/chapter04/#114 |
2009-11-07 08:38:15
|
标签的参数无效
|
|
IIssNan
|
2.0/chapter04/#86 |
2009-11-07 08:37:46
|
Django框架的大部分子系统,包括模板系统,都依赖于配置文件;如果Django不知道使用哪个配置文件,这些系统将不能工作。
|
|
|
2.0/chapter03/#551 |
2009-11-07 02:53:17
|
幸运的是,Django内建有一个简单又强大的模板处理引擎来让你分离两种工作:
|
|
IIssNan
|
2.0/chapter04/#35 |
2009-11-06 17:29:07
|
用两个大括号括起来的文字(例如 <literal>{{ person_name }}</literal> )称为 <emphasis>变量(variable)</emphasis> 。这意味着将按照给定的名字插入变量的值。
|
|