当前位置: 首页 > 网络应用技术

如何配置URL(2023年的最新饰面)

时间:2023-03-07 23:33:31 网络应用技术

  简介:本文的首席执行官注释将介绍有关Django如何配置URL的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  来自django.conf.urls导入模式,包括URL

  从视图导入 *

  urlpatterns =模式(

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

  治愈

  第二个URL写作是有问题的。导入模块编写应为来自app.views import Hello的格式。在Django中,这种导入方法应该是。

  另外,像第二个一样,我通常以这种方式写:

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

  查看Django书中的URL写作。

  流链接功能导入

  1:直接导入视图功能

  来自django.conf.urls.defaults导入 *

  从mysite.views导入hello

  urlpatterns =模式('',,

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

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

  治愈

  2:在介绍软件包模块的名称和函数的功能中,而不是函数本身

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

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

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

  治愈

  3:无需导入任何视图内容,写出字符串的清晰描述

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('',,

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

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

  治愈

  4:提取公共视图前缀

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('mysite.views',

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

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

  治愈

  5:partterns()返回对象的添加到对象

  老的:

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('mysite.view',,

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

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

  (r'^other/$','mysite.othother.oth'),

  治愈

  新的:

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('mysite.view',,

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

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

  治愈

  urlpatterns +=模式('mysite.OthoShts',,

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

  治愈

  6:到目前为止,在所有URLCONF示例中,我们都非常简单,即

  如果您要捕获的URL零件并添加小括号,Django将将捕获的文本传递到位置参数到视图函数。

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

  在Python正则表达式中,正则表达组的语法(?pnamepatrn)是该组的名称,而模式是一种匹配模式。

  以下是使用未知组的URLCONF的示例:

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

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

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

  治愈

  以下是相同的URLCONF,它重写了命名组:

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

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

  ;

  治愈

  如果您不带命名组,请求/Arcticle/2006/03 //将等于此功能呼叫:

  month_archive(请求,'2006','03')

  对于命名组,相同的请求就是这样的函数调用:

  month_archive(请求,年='2006',月= '03')

  可以看出,使用命名组可以使您的urlconf更清晰,减少参数顺序可能与潜在的错误混合在一起,

  您还可以对定义中的参数进行排序。

  7:查看冗余:

  #urls.py

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

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

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

  治愈

  #views.py

  来自django.shortcuts导入render_to_response

  从mysite.models导入mymodel

  def foobar_view(请求,URL):

  m_list = mymodel.objects.filter(is_new = true)

  如果url =='foo':

  template_name ='Template1.html'

  elif url =='bar':

  template_name ='Template2.html'

  return render_to_response(template_name,{'m_list':m_list})

  使用上述方法可以减少视图冗余

  8:固定参数传递到URL:

  #urls.py

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

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

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

  治愈

  #views.py

  来自django.shortcuts导入render_to_response

  从mysite.models导入mymodel

  def foobar_view(请求,template_name):

  m_list = mymodel.objects.filter(is_new = true)

  return render_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(请求,'jan','01')

  2:(r'^mydata/(?pmonth/w {3})/(?pday/d/d)',view.mydata)mydata(请求,月='jan',day',day ='01')

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

  9:包括导入:

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('',,

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

  (r'^photos/',包括('mysite.photos.urls'),

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

  治愈

  10:示例:

  验证用户是否已登录:

  以下是三个观点

  def my_view1(请求):

  如果未request.user.is_authenticated():

  返回httpresponseredirect('/accounts/login/')

  #...

  返回render_to_response('template1.html')

  def my_view2(请求):

  如果未request.user.is_authenticated():

  返回httpresponseredirect('/accounts/login/')

  #...

  返回render_to_response('template2.html')

  def my_view3(请求):

  如果未request.user.is_authenticated():

  返回httpresponseredirect('/accounts/login/')

  #...

  返回render_to_response('template3.html')

  以下是视图上的包装:

  deficuires_login(查看):

  def new_view(请求, *args,** kwargs):

  如果未request.user.is_authenticatienatienationed():#如果用户未登录,请跳到登录接口

  返回httpresponseredirect('/accounts/login/')

  返回视图(请求, *args,** kwargs)#otherwise

  返回new_view #turn to new_view值:登录视图或查看视图

  以下是URL配置:

  来自django.conf.urls.defaults导入 *

  来自mySite.views import oneques_login,my_view1,my_view2,my_view3

  urlpatterns =模式('',,

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

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

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

  治愈

  大写:template_dirs,database_name等。最重要的设置。root_urlconf将被告知urlConf,将使用此站点中的Python模块。

  访问URL / hello /时,Django加载基于root_urlconf的URLCONF。然后匹配urlConf中的urlpattern,直到找到匹配的urlconf,直到找到匹配的urlpattern。范围。

  正如我们在第一个视图示例中看到的那样,视图函数必须返回httpresponse.ince完成,django将完成其余的过渡python对象,并带有HTTP头和身体的合适的Web响应

  综上所述:

  进来的请求已转移到/hello/。

  Django通过setter.py中的root_urlconf配置来确定root urlconf。

  Django在URLCONF中的所有URL模式下找到了第一个匹配/Hello/条目。

  如果找到匹配,您将调用相应的视图功能

  视图函数返回httpressponse

  Django将httpresponse转换为合适的HTTP响应,并显示在网页中

  您是在谈论域名吗?通常在NGINX的正面代理和DJANGO的允许_HOST中配置

  初学者通常无法区分两者之间的差异。在此简要介绍下,URL是Django 1.x的写作。p在django2.1中,它开始放弃django1.x.in django2.x中的URL写作,path and re_path.re_path()函数描述了URL配置的两个函数。可以将其视为Django 1.X中的URL函数,也就是说,您可以在路径中定期使用。

  路径和URL是两个不同的模块。效果是响应返回页面。路径调用python第三 - 方模块或框架,URL是自定义模块,例如视图下的DEF函数对应于您的URL中的参数值,然后,然后

  例如:

  settings.py文件中有一个root_urlconf设置,该文件设置为匹配哪个URL文件在访问URL时用于匹配网站。

  url或re_path应该复杂(r'^blog/(?p [0-9] {4})/')首先需要启动和结束结束符号)结束字符,匹配a()的参数是匹配的参数范围,

  (?p匹配字段名称正则表达式)

  参数和域名是否不包含get或post请求方法,例如不匹配?

  您可以为请求参数设置默认值

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

  如何使用参数路径(“ blog/str:string/”)要简单得多,也就是说,洒水,正面是str的类型代表参数,以及后面参数的参数名称

  捕获URL中的参数需要使用括号中的值类型,以指定括号中的值类型,例如int:astr:link,有很多类型,例如:

  如果不足以定义路径和转换器语法的URL模式,则需要使用正则表达式。目前,您需要使用re_path()而不是路径()。

  示例:传递数字数的参数

  在python3中使用django2时,设置URL时,您会遇到一些坑。在此处记录。

  在系统的urls.py中,使用1.x的URL方法。

  在2.0中,它建议使用路径模块,因此在此处重写。引用

  注意:

  1. thex中的写作是

  当前写作

  在此比较中可以理解这一点,使用的链接是:钥匙= ABC

  1.x写作方法

  但是在2.0中,您以这种方式编写,您将报告一个错误,什么App_name,您可以自己看到,如何解决它,实际上非常简单。只要您在自己的项目urls.py中添加此句子。如果您不添加ITAN错误,

  笔记:

  1.什么是urls.py

  2. urls.py文件位置

  3. urls.py配置格式

  urlpatterns =模式('view prefix',

  URL(r'^正则表达式1/$','view函数1',name =“ url标识符1”),

  URL(r'^正则表达式2/$','view函数2',name =“ url标识2”),,

  治愈

  4.如何在urls.py中工作

  结论:以上是主要CTO的全部内容,请注意Django如何配置URL。感谢您花时间阅读本网站的内容。我希望这对您有帮助。有关Django如何在此站点上配置URLFIND的相关内容的更多信息。