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

请教各位高手Django的url配置问题,第1张

流线型化(streamlinling)函数导入

1:直接导入视图函数

from djangoconfurlsdefaults import

from mysiteviews import hello

urlpatterns = patterns('',

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

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

)

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

from djangoconfurlsdefaults import

from mysite import views

urlpatterns = patterns('',

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

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

)

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

from djangoconfurlsdefaults import

urlpatterns = patterns('',

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

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

)

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

from djangoconfurlsdefaults import

urlpatterns = patterns('mysiteviews',

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

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

)

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

旧:

from djangoconfurlsdefaults import

urlpatterns = patterns('mysiteview',

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

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

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

)

新:

from djangoconfurlsdefaults import

urlpatterns = patterns('mysiteview',

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

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

)

urlpatterns += patterns('mysiteothers',

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

)

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

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

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

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

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

from djangoconfurlsdefaults import

from mysite import views

urlpatterns = patterns('',

(r'^arcticles/(\d{4})/$',viewsyear_archive),

(r'^arcticles/(\d{4})/(\d{2})/$', viewmoth_archive),

)

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

from djangoconfurlsdefaults import

from mysite import views

urlpatterns = patterns('',

(r'^arcticles/(P<year>\d{4})/$', veiwsyear_archive),

(r'^arcticles/(P<year>\d{4})/(P<month>\d{2})/$', veiwsmonth_archive),

)

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

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

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

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

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

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

7:视图冗余:

# urlspy

from djangoconfurlsdefaults import

from mysite import views

urlpatterns = patterns('',

(r'^(foo)/$', viewsfoobar_view),

(r'^(bar)/$', viewsfoobar_view),

)

# viewspy

from djangoshortcuts import render_to_response

from mysitemodels import MyModel

def foobar_view(request, url):

m_list = MyModelobjectsfilter(is_new=True)

if url == 'foo':

template_name = 'template1html'

elif url == 'bar':

template_name = 'template2html'

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

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

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

# urlspy

from djangoconfurlsdefaults import

from mysite import views

urlpatterns = patterns('',

(r'^foo/$', viewsfoobar_view, {'template_name': 'template1html'}),

(r'^bar/$', viewsfoobar_view, {'template_name': 'template2html'}),

)

# viewspy

from djangoshortcuts import render_to_response

from mysitemodels import MyModel

def foobar_view(request, template_name):

m_list = MyModelobjectsfilter(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)', viewsmydata) mydata(request, 'jan', '01')

2: (r'^mydata/(P<month>/w{3})/(P<day>/d/d)', viewmydata) mydata(request, month='jan', day='01')

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

9:include导入:

from djangoconfurlsdefaults import

urlpatterns = patterns('',

(r'^weblog/', include('mysiteblogurls')),

(r'^photos/', include('mysitephotosurls')),

(r'^about/$', 'mysiteviewsabout'),

)

10:实例:

验证用户是否登录:

以下是三个视图

def my_view1(request):

if not requestuseris_authenticated():

return >

怎么获取数据库数据属于Django ORM部分的基础知识,请看Django官网教程,如果看不懂英文可以看自强学堂的Model部分教程,虽然远不如官网详尽,至少能让你知道ORM是什么、怎么用。

怎么将数据可视化到页面上属于前端知识,和你的数据类型、数据量、展现形式、期望效果、选用的前端框架以及UI框架都有关系,问题太宽泛不好回答。

模板中可以{%url name%} 。

name是url中的定义的name ,

这样方便在模板中取得url, 不用再模板hard code, 改的话直接改urlconf就行了

一、API接口功能需求:设计一些接口URL,让前端/客户请求这个URL去获取数据并显示,更改数据(增删改查),达到前后端分离的效果

二、设计逻辑:通过>

以上就是关于请教各位高手Django的url配置问题全部的内容,包括:请教各位高手Django的url配置问题、Django框架中path及re_path中name参数的使用和模板渲染(八)、Python Django框架,如何通过某一工具获取数据库数据,然后绘图,将可视化成果展现在搭建好的WEB页面上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10168294.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存