django适合大型网站吗 1.10 怎么配是视图和url

使用Django,你会用不同的方法来说明这两件事 页面的内容是靠view function(视图函数)来产生,URL定义在URLconf中。首先,我们先写一个Hello World视图函数。

在上一章使用django-admin.pystartproject制作的mysite文件夹中,创建一个叫做views.py的空文件。这个Python模块将包含这一章的视图。 请留意,Django对于view.py的文件命名没有特别的要求,它不在乎这个文件叫什么。但是根据约定,把它命名成view.py是个好主意,这样有利于其他开发者读懂你的代码,正如你很容易的往下读懂本文。

1、多个视图函数在patterns中的简洁写法:每一个视图对应一个patterns,在patterns中指定视图所在的位置
 
2、传递额外参数到视图函数中(额外参数也称为关键字参数)
 
 
 
3、在url路径中给传递参数命名,在对应的视图函数中根据命名参数获取他的值(传递参数也称为位置参数)
 
 
 
              
 
              
 
 
 
 
 
 
4、当页面需要传递参数但实际上没有参数传递时,可以使用缺省视图的情况
 
 
在这里,两个URL表达式都指向了同一个视图 views.page ,但是第一个表达式没有传递任何参数。 如果匹配到了第一个样式, page() 函数将会对参数 num 使用默认值 "1" ,如果第二个表达式匹配成功, page() 函数将使用正则表达式传递过来的num的值。(注:我们已经注意到设置默认参数值是字符串 `` ‘1’`` ,不是整数`` 1`` 。为了保持一致,因为捕捉给`` num`` 的值总是字符串。每个被捕获的参数将被作为纯Python字符串来发送。
 
 
当你这样做的时候,被包含URLconf的 每一 行都会收到那些额外的参数。与捕获参数时等价的
 
 

现在,我们有一个工作视图在前面的章节中解释。我们希望通过一个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 将成为 -

我要回帖

更多关于 django适合大型网站吗 的文章

 

随机推荐