问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django怎么配置url(2023年最新整理)

发布网友 发布时间:2024-09-29 04:08

我来回答

1个回答

热心网友 时间:2024-09-30 19:42

导读:本篇文章首席CTO笔记来给大家介绍有关django怎么配置url的相关内容,希望对大家有所帮助,一起来看看吧。

django的url配置求教为什么无法include

fromdjango.conf.urlsimportpatterns,include,url

fromviewsimport*

urlpatterns=patterns(

url(r'^hello/$',hello),

)

第二个url写法是有问题的,导入模块写法应该是fromapp.viewsimporthello这个格式,在django中,都应该这种导入方法。

另入,像第二个,我平时是这么写的:

url(r'^hello/$','app.viwes.hello`),

多看下djangobook里面的url写法。

请教各位高手Django的url配置问题

流线型化(streamlinling)函数导入

1:直接导入视图函数

fromdjango.conf.urls.defaultsimport*

frommysite.viewsimporthello

urlpatterns=patterns('',

(r'^hello/$',hello),

(r'^time/$',time),

)

2:导入包函模块名和函数的客串,而不是函数本身

fromdjango.conf.urls.defaultsimport*

frommysiteimportviews

urlpatterns=patterns('',

(r'^hello/$','views.hello'),

(r'^time/$','views.time'),

)

3:不用导入任何视图内容,写清楚字符串描述

fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('',

(r'^hello/$','mysite.views.hello'),

(r'^time/$','mysite.views.time'),

)

4:提取一个公共视图前缀

fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('mysite.views',

(r'^hello/$','hello'),

(r'^time/$','time'),

)

5:partterns()返回对对象的相加

旧:

fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('mysite.view',

(r'^hello/$','hello'),

(r'^time/$','time'),

(r'^other/$','mysite.others.other'),

)

新:

fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('mysite.view',

(r'^hello/$','hello'),

(r'^time/$','time'),

)

urlpatterns+=patterns('mysite.others',

(r'^other/$','other'),

)

6:到目前为止,在所有URLconf例子中,我们使用的很简单,即“无命名”正则表达式组,在我们

想要捕获的URL部分加上小括号,django会将捕获的文本作为位置参数传递给视图函数。在更

高级的用法中,还可以使用“命名”正则表达式组来捕获URL,并且将其作为“关键字”参数传给视图。

在python正则表达式中,命名的正则表达式组的语法是(?pnamepattern),这里name是组的名字,而pattern是匹配的某个模式。

下面是一个使用无名组的URLconf的例子:

fromdjango.conf.urls.defaultsimport*

frommysiteimportviews

urlpatterns=patterns('',

(r'^arcticles/(\d{4})/$',views.year_archive),

(r'^arcticles/(\d{4})/(\d{2})/$',view.moth_archive),

)

下面是相同的URLconf,使用命名组进行了重写:

fromdjango.conf.urls.defaultsimport*

frommysiteimportviews

urlpatterns=patterns('',

(r'^arcticles/(?Pyear\d{4})/$',veiws.year_archive),

(r'^arcticles/(?Pyear\d{4})/(?Pmonth\d{2})/$',veiws.month_archive),

)

如果不带命名组,请求/arcticle/2006/03/将会等于这样的函数调用:

month_archive(request,'2006','03')

而带命名组,同样的请求就是这样的函数调用:

month_archive(request,year='2006',month='03')

从中可以看出,使用命名组可以让你的URLconf更加清晰,减少参数次序可能搞混潜在的Bug,

还可以让你的定义中对参数重新排序。

7:视图冗余:

#urls.py

fromdjango.conf.urls.defaultsimport*

frommysiteimportviews

urlpatterns=patterns('',

(r'^(foo)/$',views.foobar_view),

(r'^(bar)/$',views.foobar_view),

)

#views.py

fromdjango.shortcutsimportrender_to_response

frommysite.modelsimportMyModel

deffoobar_view(request,url):

m_list=MyModel.objects.filter(is_new=True)

ifurl=='foo':

template_name='template1.html'

elifurl=='bar':

template_name='template2.html'

returnrender_to_response(template_name,{'m_list':m_list})

利用上面的方法可以减少视图冗余

8:为url里传入固定的参数:

#urls.py

fromdjango.conf.urls.defaultsimport*

frommysiteimportviews

urlpatterns=patterns('',

(r'^foo/$',views.foobar_view,{'template_name':'template1.html'}),

(r'^bar/$',views.foobar_view,{'template_name':'template2.html'}),

)

#views.py

fromdjango.shortcutsimportrender_to_response

frommysite.modelsimportMyModel

deffoobar_view(request,template_name):

m_list=MyModel.objects.filter(is_new=True)

returnrender_to_response(template_name,{'m_list':m_list})

一些URL参数详解:

/mydata/jan/01/

/mydata/jan/02/

/mydata/jan/03/

以上为三个url我们可以用不同的方式实现

1:(r'^mydata/(/w{3})/(/d/d)',views.mydata)mydata(request,'jan','01')

2:(r'^mydata/(?Pmonth/w{3})/(?Pday/d/d)',view.mydata)mydata(request,month='jan',day='01')

3:(r'^mydata/birthday/$',views.mydata,{month:'jan',day:'01'})mydata(request,month='jan',day='01')

9:include导入:

fromdjango.conf.urls.defaultsimport*

urlpatterns=patterns('',

(r'^weblog/',include('mysite.blog.urls')),

(r'^photos/',include('mysite.photos.urls')),

(r'^about/$','mysite.views.about'),

)

10:实例:

验证用户是否登录:

以下是三个视图

defmy_view1(request):

ifnotrequest.user.is_authenticated():

returnHttpResponseRedirect('/accounts/login/')

#...

returnrender_to_response('template1.html')

defmy_view2(request):

ifnotrequest.user.is_authenticated():

returnHttpResponseRedirect('/accounts/login/')

#...

returnrender_to_response('template2.html')

defmy_view3(request):

ifnotrequest.user.is_authenticated():

returnHttpResponseRedirect('/accounts/login/')

#...

returnrender_to_response('template3.html')

以下是对视图进行包装:

defrequires_login(view):

defnew_view(request,*args,**kwargs):

ifnotrequest.user.is_authenticated():#如果用户没有登录,跳转到登录界面

returnHttpResponseRedirect('/accounts/login/')

returnview(request,*args,**kwargs)#否则返回传进来的方法

returnnew_view#返回new_view值:登录视图或者是传进来的视图

以下为URL配置:

fromdjango.conf.urls.defaultsimport*

frommysite.viewsimportrequires_login,my_view1,my_view2,my_view3

urlpatterns=patterns('',

(r'^view1/$',requires_login(my_view1)),

(r'^view2/$',requires_login(my_view2)),

(r'^view3/$',requires_login(my_view3)),

)

django怎么发起url请求

开始于setting文件。当你运行pythonmanage.pyrunserver,脚本将在于manage.py同一个目录下查找名为setting.py的文件。这个文件包含了所有有关这个Django项目的配置信息,均大写:TEMPLATE_DIRS,DATABASE_NAME,等.最重要的设置时ROOT_URLCONF,它将作为URLconf告诉Django在这个站点中那些Python的模块将被用到

当访问URL/hello/时,Django根据ROOT_URLCONF的设置装载URLconf。然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的。当找到这个匹配的URLpatterns就调用相关联的view函数,并把HttpRequest对象作为第一个参数。

正如我们在第一个视图例子里面看到的,一个视图功能必须返回一个HttpResponse。一旦做完,Django将完成剩余的转换Python的对象到一个合适的带有HTTP头和body的WebResponse

总结一下:

进来的请求转入/hello/.

Django通过在setting.py中的ROOT_URLCONF配置来决定根URLconf.

Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。

如果找到匹配,将调用相应的视图函数

视图函数返回一个HttpResponse

Django转换HttpResponse为一个适合的HTTPresponse,以Webpage显示出来

怎样设置django默认的url

你是说域名吗?一般是在nginx的前端代理和django的allow_hosts里面配置

Django中url与path及re_path区别

初学者一般不能分清两者的区别,所这简单介绍下两者.首先,url是Django1.x中的写法,p在Django2.1中,开始舍弃django1.x中的url写法。在django2.x中,描写url配置的有两个函数path和re_path.re_path()函数可以看做是django1.x中得url函数,即可以在路径中使用正则.

path与url是两个不同的模块,效果都是响应返回页面,path调用的是python第三方模块或框架,而url则是自定义的模块,如Views下的def函数对应你url中的参数值.

例如:

在settings.py文件中有一个ROOT_URLCONF设置,设置的是在访问网址时通过哪一个url文件去匹配所请求的网址

url或者re_path要复杂一些(r’^blog/(?P[0-9]{4})/′)首先需要开始符和结尾符')首先需要开始符^和结尾符′)首先需要开始符和结尾符,参数匹配一个()就是一个匹配参数,

(?P匹配的字段名正则表达式)

进行匹配是不包括get或者post请求方式的参数及域名比如并不会匹配?后边的字符

可以给request参数设置一个默认值,最常见的分页url,比如

自定义错误页面关键字handler400=blog.views.page_no_find

参数的使用方法path(‘blog/str:string/’)简单了很多,就是尖括号,前边是str代表参数的类型,后面代表参数的名称

捕获url中的参数需要用到尖括号指定尖括号中的值类型比如int:astr:link这个转换器还有许多类型比如:

如果遇上路径和转换器语法都不足以定义的URL模式,那么就需要使用正则表达式,这时候就需要使用re_path(),而非path()。

举例:传递数字结尾的参数

在python3中使用django2的时候,在设置urls的时候,会遇到一些坑。这里做一下记录。

系统的urls.py里,在1.X的时候,都是采用的url方式。如下

在2.0中,它推荐使用的是path模块,所以这里就改写一下。引包

注意:

1.x里面的写法是

现在的写法

这样一对比就能明白了吧,使用的链接是;key=abc

1.x中写法

可是在2.0中你这么写,会报错,说什么app_name的,这个自己可以看一下,怎么解决呢,其实很简单,只要在自己项目urls.py中加上这句就行了.如果不加的话可能报错,

注:

Django中关于URL配置文件urls.py的理解

1.什么是urls.py

2.?urls.py文件位置

3.?urls.py配置格式

urlpatterns=patterns('视图前缀',

??url(r'^正则表达式1/$','视图函数1',name="url标识1"),

??url(r'^正则表达式2/$','视图函数2',name="url标识2"),

)

4.?urls.py如何工作

结语:以上就是首席CTO笔记为大家整理的关于django怎么配置url的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django怎么配置url的相关内容别忘了在本站进行查找喔。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
获取oracle中表的表结构、约束和索引信息 若3的x次方等于二十七分之一,则3的负x次方 若x的2x-1次方=1,则x=多少。若3的x次方=27分之1,则x=多少 3的x次方=1/81,x=? ...为什么?。。。若3的x次方等于81分之一,则x等于什么??急 语文句子成分分析详解 初三英语,关于被动语态 级品飞车lo如何下载? 极品飞车全球在线(nfsol)现在可以在大陆玩么?内测完毕了?听说要个登... ...一个星期不理我了怎么办,电话也不接信息也不回,问她是不是有男人了... django在哪里设置(2023年最新整理) 如何django项目(2023年最新整理) django如何设置接口(2023年最新整理) django怎么调用接口(2023年最新整理) 怎么运行django项目(2023年最新整理) 回收公司哪个好? 广东五金废铁回收哪家好 申请了一般纳税人后是否一定要购买金税公司推荐扫描仪吗 鱼翅是什么(这些知识有必要了解) 生肖小运2023年4月25日特吉次吉生肖? 电热毯用完要把线拔了吗 电热毯用完要不要把线拔了 04月27日生肖运势猴、牛、龙大吉 海宁市幼儿园有房产证户口不在海宁可以吗 海南工零是二十三年交付养老金早十三万多那退休能领到退休金多少? 海南省三亚市退休金每个月可以领取多少? 伏魔记攻略(伏魔记攻略)介绍_伏魔记攻略(伏魔记攻略)是什么 伏魔记攻略(黑白牛版伏魔记全通关攻略)介绍_伏魔记攻略(黑白牛版伏魔... 怎么把手机上的照片传到电脑里面去? 我有一张九几年的照片...到什么地方可以把它做到电脑里去??? 2024年8月12号特吉生肖 如何打开别人额django项目(2023年最新整理) 刷过牙嘴也臭因为什么 我早上起来有口臭可是刷过牙过一会口臭又出来了,我想问这是口腔的问题... 怎样挑选法兰绒的睡衣? 冬季选购睡衣需要注意哪些方面? 2023南宁园博园门票多少钱 附优惠政策及开放时间 2023年南宁园博园花海季·巨型稻草人王国门票价格 南宁园博园花海季... 2023南宁园博园开放时间 智能门锁系统锁定怎么办 320882身份证是哪里的 劳动仲裁给公司带来的影响 不是成都市的户口可以办成都一卡通吗?有人说今后如没有成都市的一卡通不... 成都儿童社保卡是如何的办理费用 2024年5月6日特吉生肖 2024年5月26日特吉生肖 一夫当关出处 为之以歙,应之以张的解释 规划设计注意哪些问题 为什么关了格力空调外机还在工作呢? 牛蒡茶不能和什么一起喝