声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2117|回复: 0

[Python] django之url映射配置

[复制链接]
发表于 2016-3-18 09:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
django url映射配置
通过对urls.py进行修改,来完成url与视图处理函数的配置

1、普通:
直接在urlpatterns里面添加一条类似url(r'^blog/time/′,′blog.views.time′)的列表项urlpatterns=patterns(′′,url(r′blog/index/′,′blog.views.time′)的列表项urlpatterns=patterns(″,url(r′blog/index/','blog.views.index'),
    url(r'^blog/time/′,′blog.views.time′),)2、多个视图处理函数存在于同一个模块文件中可以在patterns的第一个参数中直接写入模块,在明细的列表项中就不需要加入模块前缀,只需指定处理函数即可。如:urlpatterns=patterns(′blog.views′,url(r′blog/index/′,′blog.views.time′),)2、多个视图处理函数存在于同一个模块文件中可以在patterns的第一个参数中直接写入模块,在明细的列表项中就不需要加入模块前缀,只需指定处理函数即可。如:urlpatterns=patterns(′blog.views′,url(r′blog/index/','index'),
    url(r'^blog/time/′,′time′),)3、设置成分离的urls配置:这样可以离urls的配置更加简洁如:urlpatterns=patterns(′blog.views′,url(r′blog/index/′,′time′),)3、设置成分离的urls配置:这样可以离urls的配置更加简洁如:urlpatterns=patterns(′blog.views′,url(r′blog/index/','index'),
    url(r'^blog/time/′,′time′),)urlpatterns+=patterns(′blog.help′,url(r′blog/help/′,′time′),)urlpatterns+=patterns(′blog.help′,url(r′blog/help/','help'),
    )

4、把urls配置放到不同的文件夹中:
单独文件的方式更适合于一个project下同时存在多个站点,每个站点单独配置处理的urls配置
如:在blog工程下面有一个urls.py文件,
内容如下:
from django.conf.urls import patterns,include,url
urlpatterns = patterns('views',
    url(r'^index/′,′index′),url(r′time/′,′index′),url(r′time/','time'),
    )

此时projects下的urls的配置应该做如下修改:
如:
urlpatterns = patterns('',
    url(r'^blog/',include('blog.urls')),
    )
这样一访问blog的内容,就会去访问blog.urls的内容;

5、通过url传递函数
通过正则表达式传值
1)传统方式
www.blog.com?id=123&name=abc
这种方式url配置不会修改
需要修改视图函数,来获取传递参数:
id = request.GET.get('id')
name = request.GET.get('name')

2)通过'/'方式传值
如:www.blog.com/123/abc
需要对urls配置进行修改,修改成如下
如:
urlpatterns = patterns('blog.views',
    url(r'^blog/index/′,′index′),url(r′blog/time/(\d(4))/′,′index′),url(r′blog/time/(\d(4))/','time'),
    )
这里的(\d(4))就表示接收4个数字
还需要对视图函数进行修改,这时视图函数还需要多加一个参数
def time(request,p1):
    #p1为通过url传过来的参数,可以直接使用

可以通过正则表达式规定传入参数的名字,如:
urlpatterns = patterns('blog.views',
    url(r'^blog/index/′,′index′),url(r′blog/time/(?P\d(4))/′,′index′),url(r′blog/time/(?P\d(4))/','time'),
    )
此时视图函数,传入的参数名称必须和正则表达式的参数名称相同,即:
def time(request,id):
    #参数名称必须为id
转自:http://blog.sina.com.cn/s/blog_8f4dd3880102wfaz.html
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-27 21:08 , Processed in 0.085331 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表