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

如何将URL参数添加到Django(Django URL PAL)

时间:2023-03-08 12:46:20 网络应用技术

  今天,首席CTO指出,与您分享Django如何添加URL参数的相关内容。其中,将详细介绍Django URL路径之间的差异。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们立即开始。

  本文目录清单:

  1.在Django框架(8)中,在Django框架中使用名称参数的使用和模板渲染2.询问主人Django主人的主人。3. django1.8和jinja2合作,如何传递URL标签中的参数数量4.如何在URL 5上的djangoparameters中获取它。DJANGO媒体媒体文件URL配置6.如何启动DJANGO的URL请求名称参数for Django可以给出名称的匹配URL地址。通常用于模板。

  1.对于应用程序中的书籍中的urls.py(命名为URL)

  2. views.py在应用程序中的书籍中(重定向是重定向方向,反面是将URL的名称解析为URL本身的函数)

  1.名称参数可以给该URL一个合适的名称。通过使用URL的名称,将来在视图或模板中使用此名称,您只需要使用此名称。其原因是防止URL来自更改,这将导致在其他地方使用此URL的位置的更改,但是如果以该名称获取,则不会进行任何更改。

  2.注意:

  1.模板在哪里?

  2.在项目的主要目录中制作模板路径配置;将设置的寺庙目录路径添加到HTML模板的模板目录中。

  注意:反向方法中还可以有夸尔格斯参数。参数直接传递给您要在反面解析后要跳到的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)),

  治愈

  您可以使用URL随附的名称方法。

  对于诸如a.usage:无参数的操作:{%url'name'%}:参数可以是变量name {%url'name'parameter%},因此这里的更改为:url('^login_first/$',$',$',$',$',$',$',$views.login,name =“ login_first”)(其他部件自动补充大脑),在href =“ https://www.shouxicto.com/article/ {%url'login_first'%}”中。

  说明:{%url'login_first'%},此处的login_first表示该URL的链接以查找Django的URL,并将以前的URL分配给A标签中的HREF。

  真的很容易

  #编码:UTF-8

  来自django.shortcuts导入渲染,render_to_response

  #在这里创建您的视图。

  来自django.http导入httpresponse

  DEF HI(请求):

  user = {'user_id':1,'用户名':'zhang san','username':'li si'}

  getUsername = request.get.get.get('用户名')

  打印getUsername

  返回render_to_response(“ index.html”,用户)1234567891011

  request.get.get()是获取URL参数。

  上面打印的印刷结果是:Zhangsan

  在Django中,您通常需要配置图片,视频和其他格式文件。在配置过程中,它更为复杂。这是一个记录:

  将以下目录添加到文件末尾以存储上传的文件

  在模型中,图像字段是%y代表年份的年份,%m表示一个月。上传文件时,表示将上传到图像目录和当前限制目录的文件夹。

  image = models.imagefield(upload_to =“ image/%y/%m”,空白= true)

  其中,SRC中的{{Media_url}}将在模板中渲染,以用作 /媒体 /

  如果要在模板中使用{{Media_url}},请在“ template”的“ context_processis”选项中添加django.template.contexors.media。

  通过上述步骤,结果基本上可以正常呈现在前端,但是您需要在图片中添加一个URL才能正常显示。

  第一个行为介绍了静态文件的服务器,第二个行为是在配置文件中的介质_root中介绍的

  加入URL:

  大写: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响应,并显示在网页中

  结论:以上是主要CTO的全部内容,请注意Django如何添加URL参数。感谢您阅读本网站的内容。我希望这对您有帮助。有关django url pathdon的更多信息,请不要忘记找到参数的内容。