python - 如下是django框架中urls.py的代码,urlpatterns为什么要分开写,那个空字符串又是做什么的呢?

查看:124
本文介绍了python - 如下是django框架中urls.py的代码,urlpatterns为什么要分开写,那个空字符串又是做什么的呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码如下:

  1 # coding: utf8
  2
  3 from django.conf.urls.defaults import patterns, url
  4
  5 from views.information import information
  6 from views.long_related import long_related
  7 from views.related import related
  8
  9 urlpatterns = []
 10 urlpatterns += patterns(
 11     '',    #这个空字符串的作用是什么?
 12     url(r'^video/app/article/information/$', information, {'version': 17}),
 13     url(r'^video/app/article/information/v(?P<version>\d+)/$', information),
 14     url(r'^test/information/v(?P<version>\d+)/$', information),
 15 )
 16
 17 urlpatterns += patterns(    #为什么要另外定义一个patterns加到urlpatterns中?
 18     '',
 19     url(r'^video/app/article/related/$', related, {'version': 1}),
 20     url(r'^video/app/article/related/v(?P<version>\d+)/$', related),
 21 )
 22
 23 urlpatterns += patterns(
 24     '',
 25     url(r'^video/app/article/related/long/$', long_related, {'version': 1}),
 26 )

问题也如代码中的注释,首先为什么要append三个patterns,合在一起不行吗?比如

  9 urlpatterns = []
 10 urlpatterns += patterns(
 11     '',    #这个空字符串的作用是什么?
 12     url(r'^video/app/article/information/$', information, {'version': 17}),
 13     url(r'^video/app/article/information/v(?P<version>\d+)/$', information),
 14     url(r'^test/information/v(?P<version>\d+)/$', information),
 19     url(r'^video/app/article/related/$', related, {'version': 1}),
 20     url(r'^video/app/article/related/v(?P<version>\d+)/$', related),
 25     url(r'^video/app/article/related/long/$', long_related, {'version': 1}),
 26 )

另外,patterns里面有一个空字符串‘’,这是干什么的呢?

解决方案

1、patterns分开写,通常是良好的编码习惯:比如凡是页面请求(需要返回html页面)都放到一个patterns里;凡是ajax请求都放到另一个patterns里。
2、patterns里第一个参数是用来指定函数所在文件路径。比如,项目结构:

--project
  --app
    views.py
    urls.py

那么patterns里第一个参数就是:'app.views'。
当然,你也可以置空,然后在url里写全路径:app.views.fun_name

另外,最近几个版本的django里,url patterns的语法变了,你可以看看。

这篇关于python - 如下是django框架中urls.py的代码,urlpatterns为什么要分开写,那个空字符串又是做什么的呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆