使用Django,你会用不同的方法来说明这两件事 页面的内容是靠view function(视图函数)来产生,URL定义在URLconf中。首先,我们先写一个Hello World视图函数。
在上一章使用django-admin.pystartproject制作的mysite文件夹中,创建一个叫做views.py的空文件。这个Python模块将包含这一章的视图。 请留意,Django对于view.py的文件命名没有特别的要求,它不在乎这个文件叫什么。但是根据约定,把它命名成view.py是个好主意,这样有利于其他开发者读懂你的代码,正如你很容易的往下读懂本文。
1、多个视图函数在patterns中的简洁写法:每一个视图对应一个patterns,在patterns中指定视图所在的位置
|
现在,我们有一个工作视图在前面的章节中解释。我们希望通过一个URL来访问该视图。 Django有他自己 URL映射的方式,现在我们来编辑项目中的 url.py 文件(myproject/url.py)完成。url.py 文件内容看起来如下:
当用户在您的网络应用程序发起一个网页的请求,Django控制器会接管通过url.py文件来寻找相应的视图,然后返回HTML响应或如果没有找到则返回404未找到错误。最重要的是“urlpatterns” 元组。这就是定义URL和视图之间的映射。一个映射的URL模式就像一个元组 ?
模式? 一个正则表达式匹配以URL予以解决和映射。 能够与python “re”模块工作一切都符合的模式(非常有用在你想通过URL来传递参数时)。
python到视图的路径?在你导入模块时相同。
名称?为了执行URL反转,需要使用URL模式的命名来执行上面示例。这样做以后,启动服务器,通过以下URL访问您的视图:http://127.0.0.1/hello
到目前为止,我们已经创建了“myprojects/url.py”文件的URL,然而,正如前面关于Django说明,创建一个应用程序,最好是能够重复使用在不同的项目中应用。 这样就可以很容易地看到的问题是什么,如果要保存所有网址中在“projecturl.py”文件中。 所以,最好的做法是创建每个应用程序的“url.py”,并把它列入我们的主项目 url.py
文件(包括在我们的管理界面管理的 URL 之前)。
注:如果出错找不到视图文件请参考:
这可以被重构为 ?
正如你所看到的,我们现在使用 urlpatterns 元组的第一个元素。当你想改变应用程序的名称时,这非常有用。
现在我们知道如何映射URL,如何组织他们,现在就让我们来看看如何将参数传递给视图。一个经典的文章例子(您要访问文章到“/articles/article_id”)。
传递参数是通过URL模式正则表达式捕捉它们完成的。如果我们有类似以下的视图 “myapp/view.py”
注意,参数的顺序这里是很重要的。假设我们希望查看一年中某个一个月的文章列表,现在添加一个 viewArticles 视图。 view.py 代码变为 -
为避免这种情况,有可能一个URL参数会链接到视图参数。因此 url.py 将成为 -