﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-大音希声 善言不辩-随笔分类-Python</title><link>http://www.cppblog.com/tuzkee/category/8967.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 04 Dec 2008 16:50:12 GMT</lastBuildDate><pubDate>Thu, 04 Dec 2008 16:50:12 GMT</pubDate><ttl>60</ttl><item><title>Django下为数据列表增加分页显示功能</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/04/68534.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Thu, 04 Dec 2008 01:45:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/04/68534.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68534.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/04/68534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68534.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68534.html</trackback:ping><description><![CDATA[使用的仍然是Django的generic view。<br><br>1、修改urls，增加分页显示参数<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;(r</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">^film/list/?$</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.views.generic.list_detail.object_list</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dict(paginate_by</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">**</span><span style="COLOR: #000000">info_dict)),</span></div>
<br>2、修改模板，加上分页显示。需要注意上一页、下一页的url的设计。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h1&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="title"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">影片列表</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h1</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">hr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #ff0000">&nbsp;width</span><span style="COLOR: #0000ff">="500"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr&nbsp;</span><span style="COLOR: #ff0000">align</span><span style="COLOR: #0000ff">="right"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{%&nbsp;if&nbsp;has_previous&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">a&nbsp;</span><span style="COLOR: #ff0000">href</span><span style="COLOR: #0000ff">="/film/list?page={{&nbsp;previous&nbsp;}}"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">上一页</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">a</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{%&nbsp;endif&nbsp;%}&nbsp;{%&nbsp;if&nbsp;has_next&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">a&nbsp;</span><span style="COLOR: #ff0000">href</span><span style="COLOR: #0000ff">="/film/list?page={{&nbsp;next&nbsp;}}"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">下一页</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">a</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;{%&nbsp;endif&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #ff0000">&nbsp;width</span><span style="COLOR: #0000ff">="500"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">片名</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">演员</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">发行商</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">发行日期</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">简介</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{%&nbsp;for&nbsp;film&nbsp;in&nbsp;object_list&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.title&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;{%&nbsp;for&nbsp;actor&nbsp;in&nbsp;film.actors.all&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;{{&nbsp;actor&nbsp;}}</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">br</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;{%&nbsp;endfor&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.publisher&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.pub_date&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.intro&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{%&nbsp;endfor&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>3、完成，测试。
<img src ="http://www.cppblog.com/tuzkee/aggbug/68534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-04 09:45 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/04/68534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为Django应用增加列表显示功能</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/03/68520.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Wed, 03 Dec 2008 15:08:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/03/68520.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68520.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/03/68520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68520.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68520.html</trackback:ping><description><![CDATA[继续上节，现在要增加显示所以影片列表的功能。<br>（ps：稍微修改了一下一开始定义的数据库字段）<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">#</span><span style="COLOR: #008000">coding=utf8</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.db&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;models<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;演员</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Actor(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">姓名</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;birthday&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">生日</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">__unicode__</span><span style="COLOR: #000000">(self):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;self.name<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;发行商</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Publisher(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行商</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">__unicode__</span><span style="COLOR: #000000">(self):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;self.name<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;影片</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Film(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">片名</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;actors&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ManyToManyField(Actor,&nbsp;verbose_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">演员</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;pub_date&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行日期</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;publisher&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ForeignKey(Publisher,&nbsp;verbose_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行商</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;intro&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.TextField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">介绍</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;null</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">True)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">__unicode__</span><span style="COLOR: #000000">(self):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;self.title<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.contrib&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;admin<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>admin.site.register((Actor,&nbsp;Publisher,&nbsp;Film))</span></div>
对models的修改需要手动使用SQL语句修改对应的数据库表。。。。<br><br>言归正传，下面为film增加显示所有影片功能。<br>1、首先，设定url，在urls.py中增加如下内容：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;mysite.film.models&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;Film<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>info_dict&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{<br></span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">queryset</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">:&nbsp;Film.objects.all(),<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>urlpatterns&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;patterns(</span><span style="COLOR: #800000">''</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;(r</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">^film/list/$</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.views.generic.list_detail.object_list</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;info_dict),<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>)</span></div>
使用的是Django自带的object_list功能，专门用于显示对象列表，使用时，只需要提供一个对象的集合即可，也就是上面的info_dict，而info_dict又是一个queryset，Film.object.all()会转化成SQL语句的select * from film_film，并返回结果，然后赋给queryset。<br><br>2、现在该是使用模板的时候了。在settiings里面设置模板存放路径<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">TEMPLATE_DIRS&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">./templates</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>)</span></div>
<br>3、在mysite下创建templates目录，然后在templates下创建film目录，在film下创建模板，名为film_list.html。该模板的命名方式必须为model_name_list.html，model_name就是要显示的model的名字。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h1&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="title"&gt;<span style="COLOR: #000000">影片列表</span></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h1</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">hr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">片名</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">演员</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">发行商</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">发行日期</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">简介</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{%&nbsp;for&nbsp;film&nbsp;in&nbsp;object_list&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.title&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.actors&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.publisher&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.pub_date&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.intro&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{%&nbsp;endfor&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>可以看出，Django里面的模板其实也是html，只不过增加了Django自定义的标签而已。两个大括号中间的是变量，大括号加百分号中间的是Django模板标签。详细语法可参考<a href="http://docs.djangoproject.com/en/dev/topics/templates">http://docs.djangoproject.com/en/dev/topics/templates</a><br><br>4、进入<a href="http://127.0.0.1:8000/film/list/">http://127.0.0.1:8000/film/list/</a>查看效果。若出现UnicodeDecodeError，说明模板编码不正确，使用EditPlus或UltraEdit将film_list.html另存为utf8编码格式。<br><br>5、测试后发现，&#8220;演员&#8221;这一列中显示的是&lt;django.db.models.fields.related.ManyRelatedManager object at 0x01791B30&gt; 等等一堆不知所谓的内容。原因是模板中的{{film.actors}}是一个ManyToMany类型的域，是由多个actor对象组成，因此，将模板修改如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h1&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="title"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">影片列表</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h1</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">hr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">片名</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">演员</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">发行商</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">发行日期</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">简介</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">th</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{%&nbsp;for&nbsp;film&nbsp;in&nbsp;object_list&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.title&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;{%&nbsp;for&nbsp;actor&nbsp;in&nbsp;film.actors.all&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;{{&nbsp;actor&nbsp;}}</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">br</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;{%&nbsp;endfor&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.publisher&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.pub_date&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">{{&nbsp;film.intro&nbsp;}}</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>{%&nbsp;endfor&nbsp;%}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>再次测试，发现满足预想效果 :-)
<img src ="http://www.cppblog.com/tuzkee/aggbug/68520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-03 23:08 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为Django应用增加管理项（admin）</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/03/68475.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Wed, 03 Dec 2008 08:50:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/03/68475.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68475.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/03/68475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68475.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68475.html</trackback:ping><description><![CDATA[1、前文提到过，admin应用是建立Django项目时自动创建好的，现在，只要将需要管理的信息注册到admin应用即可。<br>在models.py中增加：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.contrib&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;admin<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>admin.site.register((Actor, Publisher, Film))</span></div>
<br>2、修改settings.py，将admin加入到<span style="COLOR: #000000">INSTALLED_APPS&nbsp;列表中：</span><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">INSTALLED_APPS&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.auth</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.contenttypes</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.sessions</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.sites</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.admin</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">mysite.film</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>)</span></div>
由于更改了app列表，需重新执行一次syncdb，否则会报错：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">TemplateSyntaxError&nbsp;at&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">admin</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Caught&nbsp;an&nbsp;exception&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;rendering:&nbsp;(</span><span style="COLOR: #000000">1146</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">Table&nbsp;'mysite.django_admin_log'&nbsp;doesn't&nbsp;exist</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">)<img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><br>3、修改mysite/urls.py，将 (r'^admin/(.*)', admin.site.root),一行的注释去掉。并导入admin<br>&nbsp;&nbsp;&nbsp; urls.py就是负责将url转化为对view调用的映射文件，其格式是（url，view）对。一般url都使用正则表达式。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.conf.urls.defaults&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.contrib&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;admin<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>admin.autodiscover()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>urlpatterns&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;patterns(</span><span style="COLOR: #800000">''</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;(r</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">^admin/(.*)</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;admin.site.root),<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>)<img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>4、登录<a href="http://127.0.0.1:8000/admin">http://127.0.0.1:8000/admin</a>即可对现有数据表进行管理。<br><br>5、界面是英文，有点小不爽。修改settiings.py，然后刷新。嗯，变成中文了。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">TIME_ZONE&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">CCT</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>LANGUAGE_CODE&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">zh-CN</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>6、登录，试试增加新Actor，发现什么first name，last name的，不爽。改models<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Actor(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;first_name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">名</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;last_name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">姓</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;birthday&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">生日</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)</span></div>
&nbsp;&nbsp;&nbsp; 注意，有3种类型的域不能按如上方式添加自定义名称：ManyToManyField，OneToOneField，ForeignKey。而应该显示指定：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Film(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">片名</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;actors&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ManyToManyField(Actor，verbose_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">演员</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;pub_date&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行日期</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;publisher&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ForeignKey(Publisher，verbose_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行商</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)</span></div>
<br>7、重新刷新，发行全部变成中文了。添加几个演员试试。:-)<br><br>8、添加完成，返回演员列表，发现，演员列表全是Actor Object&#8230;&#8230;&#8230;&#8230;<br>&nbsp;&nbsp;&nbsp; 这是因为，Django只是列出了所以的Actor，因为它们全是对象，所以就显示Actor Object。但这里，我们想显示的是演员的名字，Python内置的__str__方法正好完成这一功能。但__str__返回的是ascii编码，这里的演员名字用到了中文，因此__str__不能满足需要，应该使用__unicode__返回unicode编码：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">#</span><span style="COLOR: #008000">coding=utf8</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.db&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;models<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;演员</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Actor(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;first_name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">名</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;last_name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">姓</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;birthday&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">生日</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">__unicode__</span><span style="COLOR: #000000">(self):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;self.last_name</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">self.first_name<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;发行商</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Publisher(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行商</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">__unicode__</span><span style="COLOR: #000000">(self):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;self.name<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;影片</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Film(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">片名</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,&nbsp;max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;actors&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ManyToManyField(Actor,&nbsp;verbose_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">演员</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;pub_date&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行日期</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;publisher&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ForeignKey(Publisher,&nbsp;verbose_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">发行商</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">__unicode__</span><span style="COLOR: #000000">(self):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;self.title<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.contrib&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;admin<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>admin.site.register((Actor,&nbsp;Publisher,&nbsp;Film))<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
&nbsp;<br>&nbsp;&nbsp;&nbsp; 这是models.py最后的完整代码。刷新一下admin，看看，名字是不是显示出来了？ :-) 
<img src ="http://www.cppblog.com/tuzkee/aggbug/68475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-03 16:50 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为Django应用建立数据库表（database tables）</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/03/68449.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Wed, 03 Dec 2008 04:10:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/03/68449.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68449.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/03/68449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68449.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68449.html</trackback:ping><description><![CDATA[使用Django开发数据库应用的最大一个好处在于，使用Django的models可以方便的操纵数据库。models就相当于一个沟通应用与数据库的桥梁，Django会自动将与models相关的内容转化成SQL语句，更新到数据库中。使用Django，开发人员只需要将全部精力放在编写Python程序上即可。<br><br>下面，为film应用创建数据表：<br>1、打开film目录下面的models.py文件<br>2、书写film应用使用到的数据类<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;django.db&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;models<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;演员</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Actor(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;first_name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;last_name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;birthday&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;发行商</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Publisher(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;影片</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Film(models.Model):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.CharField(max_length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;actors&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ManyToManyField(Actor)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;pub_date&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.DateField()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;publisher&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;models.ForeignKey(Publisher)</span></div>
这里没有提供主键，因为Django会为每个class都自动生成一个名为id的主键。整型，自增。<br>class下的每一项都应该是一个field对象，Django的完整域列表可参考：<a href="http://docs.djangoproject.com/en/dev/ref/models/fields/">http://docs.djangoproject.com/en/dev/ref/models/fields/</a>，Django的models相关信息可参考：<a href="http://docs.djangoproject.com/en/dev/topics/db/models/">http://docs.djangoproject.com/en/dev/topics/db/models/</a>，这里，只是简单的示例models的用法。<br>3、更新数据库<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">D:\mycode\mysite</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">python&nbsp;manage.py&nbsp;syncdb</span></div>
发现报错<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">SyntaxError:&nbsp;Non</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ASCII&nbsp;character&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">\xe6</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;file&nbsp;D:\mycode\mysite\..\mysite\film\models.py&nbsp;on&nbsp;line&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,&nbsp;but&nbsp;no&nbsp;encoding&nbsp;declared;&nbsp;see&nbsp;<a href="http://www.python.org/peps/pep-0263.html">http:</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">www.python.org</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">peps</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">pep</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">0263</span><span style="COLOR: #000000">.html</a>&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;details</span></div>
因为源码models.py中用到了中文（虽然是注释。。。），但没有指明编码。<br>在models.py中加上：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">#</span><span style="COLOR: #008000">coding=utf8</span></div>
重新执行syncdb命令，发现除了我们的film的表之外，还增加了好多额外的信息：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">D:\mycode\mysite</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">python&nbsp;manage.py&nbsp;syncdb<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;auth_permission<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;auth_group<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;auth_user<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;auth_message<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;django_content_type<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;django_session<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;django_site<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;film_actor<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;film_publisher<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Creating&nbsp;table&nbsp;film_film<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>You&nbsp;just&nbsp;installed&nbsp;Django</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">s&nbsp;auth&nbsp;system,&nbsp;which&nbsp;means&nbsp;you&nbsp;don</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">t&nbsp;have&nbsp;any&nbsp;superuse<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>rs&nbsp;defined.<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>Would&nbsp;you&nbsp;like&nbsp;to&nbsp;create&nbsp;one&nbsp;now?&nbsp;(yes</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">no):</span></div>
<p>这是因为这是第一次执行syncdb命令，除了film之外，settings.py中的INSTALLED_APPS列表中有许多默认应用，第一次执行数据库同步时会生成它们，输入yes，创建admin应用的账号信息。admin是一个系统自动生成的有用的管理工具。包括了大部分常见的后台管理功能，非常实用。<br></p>
<p>如果没错的话，数据表就建好了。可以到MySQL下验证：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">mysql</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">use</span><span style="COLOR: #000000">&nbsp;film;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Database</span><span style="COLOR: #000000">&nbsp;changed<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>mysql</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #000000">&nbsp;show&nbsp;tables;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">+</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">--------------------------+</span><span style="COLOR: #008080"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;Tables_in_film&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">+</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">--------------------------+</span><span style="COLOR: #008080"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_group_permissions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_message&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_permission&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_user_groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;auth_user_user_permissions&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;django_content_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;django_session&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;django_site&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;film_actor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;film_film&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;film_film_actors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">|</span><span style="COLOR: #000000">&nbsp;film_publisher&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #808080">|</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">+</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">--------------------------+</span><span style="COLOR: #008080"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="FONT-WEIGHT: bold; COLOR: #800000">14</span><span style="COLOR: #000000">&nbsp;rows&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0.00</span><span style="COLOR: #000000">&nbsp;sec)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>mysql</span><span style="COLOR: #808080">&gt;</span></div>
可以看到，数据库表创建成功！ 
<img src ="http://www.cppblog.com/tuzkee/aggbug/68449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-03 12:10 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为Django项目安装数据库</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/03/68444.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Wed, 03 Dec 2008 03:09:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/03/68444.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68444.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/03/68444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68444.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68444.html</trackback:ping><description><![CDATA[以MySQL为例<br>1、安装MySQL<br>2、在<a href="http://sourceforge.net/projects/mysql-python">http://sourceforge.net/projects/mysql-python</a>下载Python的MySQL库，并安装。<br>3、进入MySQL命令行，建立一个名为film的新数据库<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">mysql</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">create</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">database</span><span style="COLOR: #000000">&nbsp;film;</span></div>
4、配置Django项目。打开项目目录下的settings.py文件，更改下面几行内容：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">DATABASE_ENGINE&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">mysql</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;'postgresql_psycopg2',&nbsp;'postgresql',&nbsp;'mysql',&nbsp;'sqlite3'&nbsp;or&nbsp;'oracle'.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">DATABASE_NAME&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">film</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;Or&nbsp;path&nbsp;to&nbsp;database&nbsp;file&nbsp;if&nbsp;using&nbsp;sqlite3.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">DATABASE_USER&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">root</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;Not&nbsp;used&nbsp;with&nbsp;sqlite3.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">DATABASE_PASSWORD&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">123456</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;Not&nbsp;used&nbsp;with&nbsp;sqlite3.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">DATABASE_HOST&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">''</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;Set&nbsp;to&nbsp;empty&nbsp;string&nbsp;for&nbsp;localhost.&nbsp;Not&nbsp;used&nbsp;with&nbsp;sqlite3.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">DATABASE_PORT&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">''</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;Set&nbsp;to&nbsp;empty&nbsp;string&nbsp;for&nbsp;default.&nbsp;Not&nbsp;used&nbsp;with&nbsp;sqlite3.</span></div>
我使用的是本机的数据库，最后两项留空即可。<br>
<img src ="http://www.cppblog.com/tuzkee/aggbug/68444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-03 11:09 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始一个新的Django应用（app）</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/03/68442.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Wed, 03 Dec 2008 02:53:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/03/68442.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68442.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/03/68442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68442.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68442.html</trackback:ping><description><![CDATA[Django中项目和应用是一对多的关系，一个项目就好比一个网站，而每个应用就是网站下的子类别。例如，某个网站名为TheSite，就相当于一个项目。而这个网站可能有各种服务，如news，blog，bbs，这些就相当于TheSite的几个应用（app）<br>1、确保已经建立好Django项目。（可参考：<a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68440.html">http://www.cppblog.com/tuzkee/archive/2008/12/03/68440.html</a>）<br>2、进入Django项目，建立一个名为film的应用<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">D:\</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">cd&nbsp;mycode<br>D:\mycode</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">cd&nbsp;mysite<br>D:\mycode\mysite</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">python&nbsp;manage.py&nbsp;startapp&nbsp;film</span></div>
mysite目录下会建立film目录，并自动生成一些文件。<br>3、修改mysite目录下的settings.py，将film应用加到项目中<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">INSTALLED_APPS&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.auth</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.contenttypes</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.sessions</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">django.contrib.sites</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">mysite.film</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;新增应用</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">)</span></div>
<br>film应用创建完毕。 
<img src ="http://www.cppblog.com/tuzkee/aggbug/68442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-03 10:53 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始第一个Django项目</title><link>http://www.cppblog.com/tuzkee/archive/2008/12/03/68440.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Wed, 03 Dec 2008 02:31:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/12/03/68440.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68440.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/12/03/68440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68440.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68440.html</trackback:ping><description><![CDATA[<p>1、确保为Python设置了正确的环境变量；确保为已将Django加入了PATH目录；确保已将.py类型的文件加入了PATHEXT列表。（可参考：<a id=Editor_Edit_hlEntryLink title="view: Windows下Django安装手记" href="http://www.cppblog.com/tuzkee/archive/2008/11/27/68029.html" target=_blank><u><font color=#800080>http://www.cppblog.com/tuzkee/archive/2008/11/27/68029.html</font></u></a>）<br>2、进入命令行，cd至想要存放项目源码的目录，如</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">D:\</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">cd&nbsp;mycode<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>D:\mycode</span><span style="COLOR: #000000">&gt;</span></div>
<p>3、运行django-admin.py startproject mysite，建立名为mysite的项目</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">D:\mycode</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">django</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">admin.py&nbsp;startproject&nbsp;mysite</span></div>
<p dir=ltr style="MARGIN-RIGHT: 0px">&nbsp;&nbsp;&nbsp; 注意：要确保mycode目录下尚未存在名为mysite的目录<br>4、进入mysite目录，开启服务器</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">D:\mycode</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">cd&nbsp;mysite<br><br>D:\mycode\mysite</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">python&nbsp;manage.py&nbsp;runserver<br>Validating&nbsp;models<img src="http://www.cppblog.com/Images/dot.gif"><br>0&nbsp;errors&nbsp;found<br><br>Django&nbsp;version&nbsp;</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;final,&nbsp;using&nbsp;settings&nbsp;</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">mysite.settings</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000"><br>Development&nbsp;server&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;running&nbsp;at&nbsp;http:</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">127.0</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">0.1</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">8000</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000"><br>Quit&nbsp;the&nbsp;server&nbsp;with&nbsp;CTRL</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">BREAK.</span></div>
<br>5、打开<a href="http://127.0.0.1:8000/">http:<span style="COLOR: #000000">//</span><span style="COLOR: #000000">127.0</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">0.1</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">8000</span><span style="COLOR: #000000">/</a>，如果看到
<h1>It worked!</h1>
<h2>Congratulations on your first Django-powered page.</h2>
<p>表明项目创建成功。</p>
</span>
<img src ="http://www.cppblog.com/tuzkee/aggbug/68440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-12-03 10:31 <a href="http://www.cppblog.com/tuzkee/archive/2008/12/03/68440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Python中使用中文</title><link>http://www.cppblog.com/tuzkee/archive/2008/11/28/68085.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Fri, 28 Nov 2008 08:48:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/11/28/68085.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68085.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/11/28/68085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68085.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68085.html</trackback:ping><description><![CDATA[加上下面一句即可：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">#</span><span style="COLOR: #008000">coding=gb2312</span></div>
utf8也可以。。。 
<img src ="http://www.cppblog.com/tuzkee/aggbug/68085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-11-28 16:48 <a href="http://www.cppblog.com/tuzkee/archive/2008/11/28/68085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows下Django安装手记</title><link>http://www.cppblog.com/tuzkee/archive/2008/11/27/68029.html</link><dc:creator>霜之哀伤</dc:creator><author>霜之哀伤</author><pubDate>Thu, 27 Nov 2008 13:53:00 GMT</pubDate><guid>http://www.cppblog.com/tuzkee/archive/2008/11/27/68029.html</guid><wfw:comment>http://www.cppblog.com/tuzkee/comments/68029.html</wfw:comment><comments>http://www.cppblog.com/tuzkee/archive/2008/11/27/68029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tuzkee/comments/commentRss/68029.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tuzkee/services/trackbacks/68029.html</trackback:ping><description><![CDATA[1、<a href="http://www.python.org/">http://www.python.org/</a>下载安装最新的Python<br>2、为Python设置环境变量，为&#8220;PATH&#8221;增加C:\Python26（该值可能因Python版本而不同）。为&#8220;PATHEXT&#8221;增加.py（注意，包括句点&#8220;.&#8221;），这样，在命令行中就可以直接执行.py文件了。<br>3、<a href="http://www.djangoproject.com/download/">http://www.djangoproject.com/download/</a>下载Django最新tar压缩包<br>4、Windows下可以用WinRAR解压即可，将其完整解压的一个目录下，如C:\Python26\Django-1.0.2-final<br>5、进入命令行，cd到该目录<br>6、执行setup.py install 命令进行安装（若不能运行，使用python setup.py install）<br>7、为Django设置环境变量，为&#8220;PATH&#8221;增加C:\Python26\Django-1.0.2-final\django\bin（Django的实际安装目录）<br>至此，设置完成。可以运行django-admin.py测试，若显示：&#8220;Type 'django-admin.py help' for usage.&#8221;表明设置成功。 
<img src ="http://www.cppblog.com/tuzkee/aggbug/68029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tuzkee/" target="_blank">霜之哀伤</a> 2008-11-27 21:53 <a href="http://www.cppblog.com/tuzkee/archive/2008/11/27/68029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>