??xml version="1.0" encoding="utf-8" standalone="yes"?>
个语句,ơ提C符告诉你解释器正在{待你输入当前语句的其它部分?/p>
2. 语句和表辑ּQ函数、算术表辑ּ{)
语句用关键字来组成命令,cM告诉解释器一个命令。你告诉Python 做什么,它就Z做什
么,语句可以有输出,也可以没有输出?br /> 表辑ּ没有关键字。它们可以是使用数学q算W构成的术表达式,也可以是使用括号调用?/p>
函数。它们可以接受用戯入,也可以不接受Q有些有输出Q有些则没有?br />单说Q语句就是命?必须使用关键?Q其它就是表辑ּQ而表辑ּ术表达式或函数(指整个函数对
?Q?/p>
3. W号 >> 用来重定向输?br />print 语句也是支持从定向的。可以将print语句输出重定向到标志流Q或者是文g上?br />raw_input() 接受用户的输?br />
4. python语法规则
1)、Python 有两U除法运符Q单斜杠用作传统除法Q?br />双斜杠用作Q炚w法(对结果进行四舍五入)。传l除法是指如果两个操作数都是整数的话Q它执?/p>
是地杉K(取比商小的最大整?Q而Q炚w法是真正的除法,不管操作数是什么类型,点除法L?/p>
行真正的除法?br />q有一个乘方运符Q?双星?**)?br />2)、Python 也提供了逻辑q算W:
and or not
3)、Python 不支持C 语言中的自增1 和自? q算?br />4)、Python 支持五种基本数字cdQ其中有三种是整数类型?br /> * int (有符h?
* long (长整?
* bool (布尔?
* float (点?
* complex (复数)
事实上,Python 长整C受限于用戯机的虚拟内存L。类gJava中的BigInteger
W六U数字类型, decimalQ?用于十进制QҎ。类gJava中的Decimal?br />
5. 字符?br /> 加号( + )用于字符串连接运,星号( * )则用于字W串重复?br />字符串有其特有的索引规则Q第一个字W的索引?0Q最后一个字W的索引??1?/p>
6. 列表和元l?br /> 列表和元l有几处重要的区别:
列表元素用中括号( [ ])包裹Q元素的个数及元素的值可以改变。元l元素用括?())
包裹Q也可以不加括号Q不可以更改Q尽他们的内容可以Q。元l可以看成是只读的列表?/p>
7. 字典
字典是Python 中的映射数据cdQ类gJava中的Map?br />几乎所有类型的Python 对象都可以用作键Q不q一般还是以数字或者字W串最为常用?br />值可以是Lcd的Python 对象Q字典元素用大括?{ })包裹?/p>
8. 代码块及~进寚w
代码块通过~进寚w表达代码逻辑而不是用大括号Q因为没有了额外的字W,E序的可L更高。?/p>
且羃q完全能够清楚地表达一个语句属于哪个代码块。当Ӟ代码块也可以只有一个语句组成?br />
9. 条g及@环语?br />1)、if语句
if expression:
if_suite
如果表达式的值非0 或者ؓ布尔值True, 则代码组 if_suite 被执? 否则去执行下一条语句?代码
l是一个Python 术语Q?它由一条或多条语句l成Q表CZ个子代码块?br />Python q支?elif Q意?“else-if ”)语句?br /> 新的条g式x = true_value if condition else false_value
如果要表C明可以加上圆括号?/p>
2)、while语句(?
3)、for语句和range()内徏函数
Python 中的for 循环与传l的for 循环Q计数器循环Q不太一P 它更象shell 脚本里的 foreach q?/p>
代?br />要用的数D围可能会l常变化QPython 提供了一个range([start]stop[step])内徏函数来生成这U?/p>
列表。它正好能满x们的需要,接受一个数D_生成一个列表。通过使用range()函数可以
python中的for循环和传l的计数循环一L效果?br />enumerate(list) 该函数同时@环遍历烦引和元素。list: 被操作的列表或字W串。他序列加上烦?/p>
值变成元ltuple寏V?br />10. 核心W记Q什么是属性?
属性是与数据有关的目Q?属性可以是单的数据| 也可以是可执行对象, 比如函数和方法。哪?/p>
对象拥有属性呢Q?很多?c, 模块Q?文gq有复数{等对象都拥有属性。我如何讉K对象属性? ?/p>
用句点属性标识法?也就是说在对象名和属性名之间加一个句点: object.attribute?br />
11. cd对象
所有名字开始和l束都有两个下划U的Ҏ都是ҎҎ?br />当一个类实例被创建时Q?__init__() Ҏ会自动执行, 在类实例创徏完毕后执行, cM构徏函数?/p>
__init__() 可以被当成构建函敎ͼ 不过不象其它语言中的构徏函数Q?它ƈ不创建实?-它仅仅是你的
对象创徏后执行的W一个方法。它的目的是执行一些该对象的必要的初始化工作。通过创徏自己?
__init__() ҎQ?你可以覆盖默认的 __init__()ҎQ默认的Ҏ什么也不做Q,从而能够修饰刚?/p>
创徏的对象?br />创徏一个类实例像调用一个函敎ͼ 它们实拥有一L语法。它们都是可调用对象?br />self.__class__.__name__ 变量的倹{对一个实例来_ q个变量表示实例化它的类的名字?/p>
Qself.__class__引用实际的类Q类gJava中的Class对象Q?/p>
12. 模块
模块是一U组lŞ式, 它将彼此有关pȝPython 代码l织C个个独立文g当中。模块可以包含可?/p>
行代码, 函数和类或者这些东西的l合?br />当你创徏了一?Python 源文Ӟ模块的名字就是不?.py 后缀的文件名Q你可以从另一个模块中使用
import 语句导入q个模块来用?br />不同于print 语句Q?write()不会自动在字W串后面d换行W号?/p>
13. 一些实用的Ҏ
dir([obj]) 昄对象的属性,如果没有提供该参敎ͼ则显C全局变量的名?br />help([obj]) 以一U整齐美观的形式Q显C对象的文本字符Ԍ如果没有提供M参数Q则会进?/p>
互助实帮助?br />int(obj) 一个对象{换ؓ整数?br />len(obj) q回对象的长?br />open(fn, mode) 以mode(‘r?= 读, ‘w?= ?方式打开一个文件名为fn的文?br />range([strart, ] stop [,step]) q回一个整数列表。v始gؓstartQ结束gؓstop-1Qstart默认
gؓ0Qstep默认gؓ1?br />raw_input(str) {待用户输入一个字W串Q可以提供一个参数str用作提示信息?br />str(obj) 一个对象{换成字符?br />type(obj) q回对象的类?q回值本w是一个type对象)
JavaE序员所说的AoP?br /> def tt(fun):
print 'Hello I am tt'
return fun
def ttt(fun):
print "Hello I am ttt"
return fun
def tttt(fun):
print "Hello I am tttt"
return fun()
@tt(tttt)
@ttt
def foo():
print 'Hello I am foo'
foo = tt(tttt)(ttt(foo))
2. python解释?br />所有的pythonE序都是在Python解释器中执行 python解释器是一个独立的q程Q其实我们可以把整个
python解释器看做服务器Q而我们的E序是写在客户端(各种~程工具Q,然后在服务器上运行?/p>
3. 闭包
如果在一个内部函数里Q对在外部作用域(但不是在全局作用域)?br />变量q行引用Q那么内部函数就被认为是closure。定义在外部函数内的但由内部函数引用或者用的?/p>
量被UCؓ自由变量?/p>
4. 名字I间
如果说模块是按照逻辑来组l?Python代码的方? 那么文g便是物理层上l织模块的方法。因? 一?/p>
文g被看作是一个独立模? 一个模块也可以被看作是一个文件?模块的文件名是模块的名字加上扩
展名 .py ?br />一个名U空间就是一个从名称到对象的关系映射集合?br /> 解释器启动之? 也可以访问这个搜索\? 它会被保存在 sys 模块?sys.path 变量里。可
以用sys.path .append()函数加入搜烦路径?br /> 解释器执行到q条语句, 如果在搜索\径中扑ֈ了指定的模块, ׃加蝲它。该q程遵@作用
域原? 如果在一个模块的层导入, 那么它的作用域就是全局? 如果在函C导入, 那么它的作用
域是局部的?br />使用自己惌的名字替换模块的原始名称。一个普遍的解决Ҏ是把模块赋值给一个变量。当然这样很
无聊Q所以可以?as 关键字达到同L效果?br />Python 模块(.py, .pyc, or .pyo 文g)?br />在python中也有包的概念,基本和Java相同Q就不多说了?br />
个语句,ơ提C符告诉你解释器正在{待你输入当前语句的其它部分?/p>
2. 语句和表辑ּQ函数、算术表辑ּ{)
语句用关键字来组成命令,cM告诉解释器一个命令。你告诉Python 做什么,它就Z做什
么,语句可以有输出,也可以没有输出?br /> 表辑ּ没有关键字。它们可以是使用数学q算W构成的术表达式,也可以是使用括号调用?/p>
函数。它们可以接受用戯入,也可以不接受Q有些有输出Q有些则没有?br />单说Q语句就是命?必须使用关键?Q其它就是表辑ּQ而表辑ּ术表达式或函数(指整个函数对
?Q?/p>
3. W号 >> 用来重定向输?br />print 语句也是支持从定向的。可以将print语句输出重定向到标志流Q或者是文g上?br />raw_input() 接受用户的输?br />
4. python语法规则
1)、Python 有两U除法运符Q单斜杠用作传统除法Q?br />双斜杠用作Q炚w法(对结果进行四舍五入)。传l除法是指如果两个操作数都是整数的话Q它执?/p>
是地杉K(取比商小的最大整?Q而Q炚w法是真正的除法,不管操作数是什么类型,点除法L?/p>
行真正的除法?br />q有一个乘方运符Q?双星?**)?br />2)、Python 也提供了逻辑q算W:
and or not
3)、Python 不支持C 语言中的自增1 和自? q算?br />4)、Python 支持五种基本数字cdQ其中有三种是整数类型?br /> * int (有符h?
* long (长整?
* bool (布尔?
* float (点?
* complex (复数)
事实上,Python 长整C受限于用戯机的虚拟内存L。类gJava中的BigInteger
W六U数字类型, decimalQ?用于十进制QҎ。类gJava中的Decimal?br />
5. 字符?br /> 加号( + )用于字符串连接运,星号( * )则用于字W串重复?br />字符串有其特有的索引规则Q第一个字W的索引?0Q最后一个字W的索引??1?/p>
6. 列表和元l?br /> 列表和元l有几处重要的区别:
列表元素用中括号( [ ])包裹Q元素的个数及元素的值可以改变。元l元素用括?())
包裹Q也可以不加括号Q不可以更改Q尽他们的内容可以Q。元l可以看成是只读的列表?/p>
7. 字典
字典是Python 中的映射数据cdQ类gJava中的Map?br />几乎所有类型的Python 对象都可以用作键Q不q一般还是以数字或者字W串最为常用?br />值可以是Lcd的Python 对象Q字典元素用大括?{ })包裹?/p>
8. 代码块及~进寚w
代码块通过~进寚w表达代码逻辑而不是用大括号Q因为没有了额外的字W,E序的可L更高。?/p>
且羃q完全能够清楚地表达一个语句属于哪个代码块。当Ӟ代码块也可以只有一个语句组成?br />
9. 条g及@环语?br />1)、if语句
if expression:
if_suite
如果表达式的值非0 或者ؓ布尔值True, 则代码组 if_suite 被执? 否则去执行下一条语句?代码
l是一个Python 术语Q?它由一条或多条语句l成Q表CZ个子代码块?br />Python q支?elif Q意?“else-if ”)语句?br /> 新的条g式x = true_value if condition else false_value
如果要表C明可以加上圆括号?/p>
2)、while语句(?
3)、for语句和range()内徏函数
Python 中的for 循环与传l的for 循环Q计数器循环Q不太一P 它更象shell 脚本里的 foreach q?/p>
代?br />要用的数D围可能会l常变化QPython 提供了一个range([start]stop[step])内徏函数来生成这U?/p>
列表。它正好能满x们的需要,接受一个数D_生成一个列表。通过使用range()函数可以
python中的for循环和传l的计数循环一L效果?br />enumerate(list) 该函数同时@环遍历烦引和元素。list: 被操作的列表或字W串。他序列加上烦?/p>
值变成元ltuple寏V?br />10. 核心W记Q什么是属性?
属性是与数据有关的目Q?属性可以是单的数据| 也可以是可执行对象, 比如函数和方法。哪?/p>
对象拥有属性呢Q?很多?c, 模块Q?文gq有复数{等对象都拥有属性。我如何讉K对象属性? ?/p>
用句点属性标识法?也就是说在对象名和属性名之间加一个句点: object.attribute?br />
11. cd对象
所有名字开始和l束都有两个下划U的Ҏ都是ҎҎ?br />当一个类实例被创建时Q?__init__() Ҏ会自动执行, 在类实例创徏完毕后执行, cM构徏函数?/p>
__init__() 可以被当成构建函敎ͼ 不过不象其它语言中的构徏函数Q?它ƈ不创建实?-它仅仅是你的
对象创徏后执行的W一个方法。它的目的是执行一些该对象的必要的初始化工作。通过创徏自己?
__init__() ҎQ?你可以覆盖默认的 __init__()ҎQ默认的Ҏ什么也不做Q,从而能够修饰刚?/p>
创徏的对象?br />创徏一个类实例像调用一个函敎ͼ 它们实拥有一L语法。它们都是可调用对象?br />self.__class__.__name__ 变量的倹{对一个实例来_ q个变量表示实例化它的类的名字?/p>
Qself.__class__引用实际的类Q类gJava中的Class对象Q?/p>
12. 模块
模块是一U组lŞ式, 它将彼此有关pȝPython 代码l织C个个独立文g当中。模块可以包含可?/p>
行代码, 函数和类或者这些东西的l合?br />当你创徏了一?Python 源文Ӟ模块的名字就是不?.py 后缀的文件名Q你可以从另一个模块中使用
import 语句导入q个模块来用?br />不同于print 语句Q?write()不会自动在字W串后面d换行W号?/p>
13. 一些实用的Ҏ
dir([obj]) 昄对象的属性,如果没有提供该参敎ͼ则显C全局变量的名?br />help([obj]) 以一U整齐美观的形式Q显C对象的文本字符Ԍ如果没有提供M参数Q则会进?/p>
互助实帮助?br />int(obj) 一个对象{换ؓ整数?br />len(obj) q回对象的长?br />open(fn, mode) 以mode(‘r?= 读, ‘w?= ?方式打开一个文件名为fn的文?br />range([strart, ] stop [,step]) q回一个整数列表。v始gؓstartQ结束gؓstop-1Qstart默认
gؓ0Qstep默认gؓ1?br />raw_input(str) {待用户输入一个字W串Q可以提供一个参数str用作提示信息?br />str(obj) 一个对象{换成字符?br />type(obj) q回对象的类?q回值本w是一个type对象)
2. django-admin.pyQDjango的管理脚本?br />django-admin.py startproject newtestQ创Z个新目Q这个项目下面可以保护N多WEBE序?/p>
3. 目文g(自动生成)Q?br />__init__.py
表示q是一?Python 的包
manage.py
提供单化?django-admin.py 命oQ特别是可以自动q行 DJANGO_SETTINGS_MODULES ?PYTHONPATH
的处理,而没有这个命令,处理上面环境变量是gȝ的事?
settings.py
它是django的配|文?
uls.py
url映射处理文gQ?/p>
4. manage.py runserver [port] 启动web serverQ可以指定端口,默认?000?/p>
5. 正则表达式解析参?br /> Django中到处都是正则,而且提交的参C可以通过正则处理Q比?br /><?P<args>?gt; Group指定为args名,可以通过Match对象调用。Django中大量用?/p>
6. request.POST, request.GET,以及通吃的request.REQUEST?/p>
7. Django开发顺序:
8. render_to_response Q它可以直接调用模板q返回生成好的文本,直接q回它即可。它接收两个?/p>
敎ͼW一个是模板的名字。它应该q回了一个HttpResponse对象Qƈ拥有一个Context对象(变量环境?/p>
?。而且传入的模板自动render了处理传入的dict的Context对象?/p>
9. ?Django 模板?{{}} 表示引用一个变量, {%%} 表示代码调用?/p>
10. 注意Context对象中的autoescape变量Q它默认是TrueQ会自动对Context中的数据q行转义
(escape)?/p>
11. 创徏Templates目录Q?br /> 在项目下建立一个Templates目录Q然?br />修改settings.py
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates".
# Always use forward slashes, even on Windows.
'./templates',
)
Django q支持在 App 中定义一?templates 目录。这?Django 在启动时会检查所有的 App ?
templates 目录Q如果存在,则将路径攑֜ TEMPLATE_DIRS 之后Q也是目的Templates之后。这?/p>
方便定义模板\径了?/p>
12. django ?session 是存攑֜数据库中的?/p>
13. d数据库:
修改settings.py
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = './data.db'
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''
然后Q用django-admin.py ?或者其化manage.py
比如Q?manage.py syncdbQ来同步数据库,׃生成一个数据库文g?/p>
14. Django APP
Model, Template, View 合成了 MTV q几个字母?Model 是用来针Ҏ据库Q同时它可以用来自动
生成理界面Q?View 在前面我们一直都用它Q用来处理请求和响应的相当于MVC框架中的 Controller
的作用, Template 用来生成界面?br />创徏App
manage.py startapp appname
自动生成如下文gQ?br />__init__.py
表示 wiki 目录是一个包?
views.py
用来攑֮?view 的代码?
models.py
用来?model 代码?br />15. 安装App
修改settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'appname',
)
16. Wiki ?model 的名字,它需要从 models.Model z而来。采用ORMQ无需兛_底层的数据库
17. 数据库操作:
对于数据库的记录有两U操U|式,一U是集合方式Q一U是对象方式。集合方式相当于表
操作Q在新版?0.92 中可以?model.objects 来处理?objects 对象有一些集合方式的操作Q如
all() 会返回全部记录, filter() 会根据条件返回部分记录。而象插入新记录则需要用记录方式来
操作Q有时要直接使用 model cRfilter() 中用的参数与一般的 db-api 是一LQ但如果是比?/p>
相等Q可以ؓ: pagename__exact=pagename 也可以简化ؓ pagename=pagename 。上面__后面是比较条
件?br />18. 可以Z同的Appd不同的template。只要将d的App模板目录加到settings.py中?br />19. admin ?Django 提供的一个核?app(既然?app 需要安装,一会就看到?Q它可以Ҏ你的
model 来自动生成管理界面?/p>
20. 单的命o manage.py reset addressQ重|指定的数据表,也就是会drop掉旧表,然后生成新表
Q可以修改表l构Q但是所有的数据会删除?br />21. 修改setting.py
?LANGUAGE_CODE ?'en' 改ؓ 'zh-cn' Q?TIME_ZONE 改ؓ 'CCT'
h下界面,admin理app可以变成中文界面?br />22. Django中一个通用的view生成模块。django.views. generic. list_detailQ给出常用的现实Ҏ
Q而不需要我们自q写viewQ来控制昄。具体参见,相应的模块说明?br />23. include 可以方便ULQ每?app 都可以有独立?urls.py Q然后可以与?urls.py 合在一起
用。将app的urls.py来包含到指定的主urls.py中?br />24. 使用 object_list() 需要的模板文g名ؓQ?app_label/model_name_list.html Q这是缺省要查找
的模板名?br />25. 永远C不要在python中留不必要的I或空|那是E序错误的万恶之源?br />26. 要想在django中取得模板,Lapp+下划U?模板名格式来?br />27. 实现排序Q只要在modelcMd一个名叫Meta 内部c,q设|其ordering = [‘字D名’]Q就?/p>
按指定的字段排序Q?’表C倒序?/p>
28. 实现分页Q仍使用django内置的generic view 机制Q在使用 generic view?object_list Ӟ?/p>
会根?URL Dispatch 中是否设|了 paginate_by q个参数来决定是否用分|制。一会我们会看到
?urls.py 的这个参数。一旦设|了q个参数Q则 object_list 会?Django 提供的一个分处?/p>
器来实现分页。它会自动生分|用到的许多的变量Q这里我们用了 has_previous, previous,
has_next, next q四个变量,q有其它一些变量可以用?br />修改urls.py : (r'^/?$', 'django.views.generic.list_detail.object_list',
dict(paginate_by=10, **info_dict)),
q里使用10行记录分,q把info_dict和paginate_by变量一起合成一个dictQ注意dict和dict合ƈQ?/p>
必须使用可变参数**?/p>
29. 使用site_mediaQ也x指定攄多媒体文件的路径?br /> 修改urls.py Q注意是project的urls.pyQ?br />(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_PATH}),
django.views.static.serveQ需要document_root参数Q我们可以在settings.py中指定。那么我们的?/p>
媒体文g放|在settings.py指定的STATIC_PATH目录中?br />注意我们的settings.py文g的信息,可以通过 django.conf.setting来取得,他会先取得当前project
的settings模块的信息也是DJANGO_SETTINGS_MODULE环境变量指定的settings模块Q当前project中可
以从当前project中取得,如果你想在项目外d该settings模块Q需要指定环境变?/p>
DJANGO_SETTINGS_MODULEQ而且要在path环境变量中加入当前project目录Q然后是全局?/p>
django.conf.global_settings的信息?/p>
30. 搭徏模板框架Q我们可以徏立一个基本模板,比如base.htmlQ在q个模块中放|通用的东西,然后
其它的模块扩展至他?br />注意Q{% block content %}content{% endblock %}其它的所有承该模块的模块,新加的内定w必须
写在content中?br />扩展模块使用 extends Q比如:{% extends "基本模块" %}Q注意必d在子模块的开头?/p>
31. lDjangodfilterQ?br /> 需要在app目录下面新徏一个目?templatetagsQ该目录攄扩展filterQ还可以扩展 Tag Q?/p>
q可以设|模板变量,q可以进行块处理{复杂的操作?br /> Z使这个文件成Z个包Q需要添加__init__.py文gQؓI就可?br />然后d一个filter文gQ比如:change_gender.pyQ取得模板库Qdjango.template. Library()Q?br />然后filer注册l这个库好了,比如Q?/p>
register = django.template.Libary()Q?br />然后register.filter(‘过滤器名?qo器方法对?
或者用装饰器Q@register.filter(name=’过滤方法?Q装饰器Q写在过滤方法上面,他将qoҎ
作ؓ一个参C递给装饰器方法?/p>
32. 可以在模板开始处Q用{%load qo?}Qload使一个tagQ来加蝲qo器,他将会在responsel?/p>
客户端时调用。{% cycle mytr1,mytr2%}Q这里的cycle也是一个tagQ他@环用后面给定的css c?/p>
?/p>
33. 再要使用qo器的地方使用道Q加上过滤器Q管道标{䏀|’(UNIXpȝ中常用)Q后面ؓqo?/p>
?/p>
34Q一般对于template的修Ҏ者urlQviewQmodel的修攚w不需要重启服务器Q而对于project的修?/p>
Q或者setting.py文g的修改,都需要重启服务器?/p>
35. 讄一般用P通过admin在admin理E序中添加,一般自动用MD5加密Q当然你也可以用其?/p>
的加密算法,也可以用加密后填入密码框,当然q种加密法必须是django所支持的?/p>
36. django.contrib.admin.views.decorators import staff_member_required
通过staff_member_required q个装饰器,可以让当前被装饰的h处理ҎQ处理,如果没有登陆
Q而进入该ҎQ就会{到admin登陆界面?/p>
37. 注意在request对象中有一个user对象Q它是当前d的用戗我们可以通过其控制用Ld?/p>
为。例如在settings.py中设|一个UPLOAD_USERQ然后在上传Ҏ中处理,可以控制用L上传行ؓ
?/p>
38. 查询模块。name_icontains ?Django 中过滤条件的写法。这里是说只要包含指定的字符的即可,
而且不区分大写?/p>
39. i18nQ对于国际化的处理,q里不多_因ؓ我这里没遇到问题Q不q要C认所有的~码l一
Q而且为国际统一~码Q最好都用utf-8?/p>
40. 自定义Tag。首先,Tag必须是django.template.Nodecd。然后在q个Node 调用它们?render()
ҎQ然后将输出l果拼接hQ也是q回l客L的结果。然后是注册到系l中Qƈ使用注册Ҏ
。注意这个Tag所对应的处理类Q应该放在在templateTags目录下,然后在模板中使用的时候,要加载这
个TagQ也是对应得处理模块。我想filter和Tag在实际上时同一U东ѝ?/p>
ȝQ上面是我初学Django的ȝQ有很多不?/p>
------ 2009q?9?/p>
14?晚上21?br />