范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Django路由配置方法全解

  Django中路由的作用:
  其本质是URL与该URL要调用的视图函数之间的映射,就是为告诉Django对客户端发过来的某个URL应该调用执行哪一段逻辑代码
  路由基本的配置:from django.conf.urls import url  # urlpatterns必须是一个由url()实例组成的Python列表 urlpatterns = [   	# url(regex, view, kwargs=None, name=None),     url(正则表达式, 视图函数名, 可选参数, 路由别名), ]  """ url()函数中的参数解释:     正则表达式:一个正则表达式字符串     views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串     参数:可选的要传递给视图函数的默认参数(字典形式)     别名:一个可选的name参数,用于反向解析 """
  细说url函数的第一个参数:from django.conf.urls import url  from . import views  urlpatterns = [     url(r"^articles/2003/#39;, views.special_case_2003),     url(r"^articles/([0-9]{4})/#39;, views.year_archive),     url(r"^articles/([0-9]{4})/([0-9]{2})/#39;, views.month_archive),     url(r"^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/#39;, views.article_detail), ]
  注意点:
  1.urlpatterns列表中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续。
  2.当请求匹配urlpatterns完所有元素后也未匹配成功,就会向客户端返回404.
  3.若要从URL中捕获一个值,只需要在 ==/ /== 里放置一对圆括号,并写上对应的正则匹配即可(分组匹配)。
  4.不需要添加一个前导的反斜杠,因为每个URL 默认前面就会有反斜杠。例如,应该是^articles 而不是 ^/articles。
  5.每个正则表达式前面的"r" 是可选的但是建议加上。让正则字符串中任何字符都不被转义,保留原始。
  路由正则表达式结尾是否要加 "/" 说明:from django.conf.urls import url from app01 import views  urlpatterns = [ 		url(r"^index/#39;, views.index),  # 结尾加"/"     	url(r"^test#39;, views.test),  # 结尾不加 "/" ]
  例如:
  测试1:访问http://127.0.0.1:8000/index或http://127.0.0.1:8000/index/ 结果都是成功的,因为当访问http://127.0.0.1:8000/index时会自动做301重定向到http://127.0.0.1:8000/index/
  测试2:访问http://127.0.0.1:8000/test是成功的, http://127.0.0.1:8000/test/就会失败了
  那么到底是什么原因?怎么会这样呢?# 如路由中结尾有"/" 但请求中的url结尾没有加"/"匹配时是否在URL中附加尾部斜杠 True添加,False不添加 APPEND_SLASH=True  # Django的global_settings的默认配置
  测试1中:http://127.0.0.1:8000/index写法也能访问成功的原因就是APPEND_SLASH默认设置了为True,但是如果把此配置改为False,那么访问 r"^index/#39; 路由时就必须在结尾的加上"/"。
  总结:
  由此测试可以说明在定义路由时结尾加上 "/ " 会让路由更加灵活。
  没有命名的正则表达式组:# 将加圆括号的正则表达式匹配到的内容当做位置参数自动传递给对应的视图函数  # 路由层 url(r"^test/(d+)/",views.test),  # 匹配一个或多个数字  # 视图层 def test(request, num):   # num接收到从路由括号圆括号内,相应正则表达式中匹配的值     print(num)     return HttpResponse("test")
  有命名的正则表达式组:
  在Python的正则表达式中,分组命名正则表达式组的语法是(?Ppattern),其中name是组的名称,pattern是要匹配的模式# 将加圆括号的正则表达式匹配到的内容当做关键字参数自动传递给对应的视图函数  # 路由层 url(r"^test/(?Pd+)/",views.test),  # 匹配一个或多个数字  # 视图层 def test(request, year):  # 此处的形参名一定要和正则组命名一致     print(year)     return HttpResponse("test")
  下面是代码是 使用有命名的正则表达式组重写:from django.conf.urls import url  from . import views  urlpatterns = [     url(r"^articles/2003/#39;, views.special_case_2003),     url(r"^articles/(?P[0-9]{4})/#39;, views.year_archive),     url(r"^articles/(?P[0-9]{4})/(?P[0-9]{2})/#39;, views.month_archive),     url(r"^articles/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/#39;, views.article_detail), ]
  这个实现与前面的示例完全相同,只有一个细微的差别:捕获的值作为关键字参数而不是位置参数传递给视图函数。
  在实际应用中,使用有命名的正则表达式组会更加明晰且不容易产生参数顺序问题的错误 —— 你可以在你的视图函数定义中重新安排参数的顺序。 当然,这些好处是以简洁为代价的;一些开发人员发现命名组语法丑陋而且太冗长。
  注意:
  无名正则表达式组和有名正则表达式组不能混着用!!!# 要么都不命名url(r"^articles/([0-9]{4})/([0-9]{2})/#39;, views.month_archive),  # 要命名都要命名 url(r"^articles/(?P[0-9]{4})/(?P[0-9]{2})/#39;, views.month_archive),  # 不能这样混着用,报错提示缺少必传位置参数 url(r"^articles/(?P[0-9]{4})/([0-9]{2})/#39;, views.month_archive),
  正则表达式组捕获的参数都是字符串类型:
  每个捕获的参数都作为一个普通的Python 字符串传递给视图,无论正则表达式使用的是什么匹配方式。 例如,url(r"^articles/(?P[0-9]{4})/#39;, views.year_archive),
  传递给views.year_archive()的year参数将是一个字符串,不是整数,即使[0-9]{4}只匹配整数字符串
  指定视图参数的默认值:
  在这里给大家说一个方便的小技巧是指定视图参数的默认值。 URLconf 和视图的示例:# URLconf from django.conf.urls import url  from . import views  urlpatterns = [     url(r"^blog/#39;, views.page),     url(r"^blog/page(?P[0-9]+)/#39;, views.page), ]  # View (in blog/views.py) def page(request, num="1"):     # 此处省略若干行代码...
  在上面的例子中:
  两个URL指向同一个视图views.page
  但是第一个不会从URL 中捕获任何值。 如果第一个匹配成功,page() 函数中num将使用默认的参数值"1"。	如果第二个模式匹配,`page()` 将使用正则表达式捕获的`num` 值。
  通过上面的例子,你发现了什么呢?
  说明我们视图函数中的普通参数变为默认参数后,可以让我们的视图函数变得更灵活,这样我们可以让一个视图函数被多种路由去灵活使用。

东京奥运会出现首例兴奋剂事件,为什么运动员不能使用兴奋剂?就在今天7月31号,田径诚信机构宣布,一位来自尼日利亚的短跑女将奥卡巴雷,在接受药检的时候被查出使用兴奋剂,导致药检不合格被禁赛,这是目前为止东京奥运会开幕后发现的首例兴奋剂事件。格局人生不设限,成功无上限只要有心,没有什么是不可能的。假设我们种一棵榕树,很细心地将它种在小盆子里,每天小心翼翼地看顾,用心去浇灌施肥,但过了五年十年甚至二十年,这棵榕树还是长不大,为什么?因为它的生长范智者学派浅析通俗地说,智者派这帮人就是传销界祖师爷,他们不是纯粹的哲学家,而是以教授修辞学,即怎么使得话说的漂亮文法诡辩为一体的老师。希波战争的胜利,使得雅典民主发展到顶峰。民主政治使得人人都旧宫殿时间雕刻着每一片砖瓦在中国的古迹中,没有一处像故宫这样拥有显赫的位置,如同一条无用的旧闻,却仍占据着头版头条。对于许多从没进去过的人来说,故宫是他们想象中的天堂。在很长的时间中,只有很少数身份高贵的人米利都学派浅析哲学的起源话说人类从树上刚下来,还尚未进入文明社会,但是随着人类不断调动智能,发现这个世界是如此的丰富多彩,但是又变化不定,可是如果世界是变化不定的,都不知道明天的世界和今天的世界中年仍要征战,刘邦之难在于己公元前202年,定陶县,刘邦坐在皇位上俯瞰天下。八年征战,终于换来今日的万人瞩目。就在不久前,他终于打败了项羽,成为天下的半个主人。为什么是半个?因为他的盟友们也要享受胜利果实,分康德先验哲学第三组二律背反的正命题的论证1假设不存在自由因果性。2那么按照自然因果性一直追溯下去便没有一个绝对第一因。3那么这种找不到第一因的情况,便违背了自然律因果性的固有性质即一切事情的发叔本华浅析充足理由律要了解叔本华的哲学,就要回头看传统哲学遗留下什么问题。康德哲学的问题就是物自体既然是不可知的,何以说他存在呢?而柏拉图解释不清理念从何而来又怎么派生出万物?康德其实划定了贝克莱浅析从笛卡尔说起笛卡尔认为一切都值得怀疑,但有一个不可怀疑的基石,就是思本身,所以提出我思故我在。这个思想有两个含义思成为确证存在的一个方式,也就是意识之外的存在实际上被悬置起来了思出卢梭哲学浅析不平等起源自然法学派普遍认为,人类进入文明社会以前有一段自然状态,霍布斯将其表述为战争状态,卢梭却表述为淳朴状态。卢梭认为,在自然状态人们过着离群索居的生活,诸如贪婪嫉妒等情感尚未尼采哲学浅析酒神和日神酒神就是狄奥尼索斯,日神就是阿波罗,分别是古希腊神话中的两位神袛。酒神象征意志和本能,表现一种追求丰产的愿望,表现为惊骇狂烈的情绪放纵力量。日神象征理性,象征美的外观和无
景观形成模型解释了为什么土星卫星泰坦地貌类似地球一个新的假设显示,一个由季节驱动的全球沉积周期可以解释土星卫星土卫六泰坦上地貌的形成。这项研究表明,这个外星世界可能比以前认为的更像地球。土星的卫星泰坦,从太空中看起来非常像地球,巨大彗星正朝地球飞来!重达500万亿吨,科学家还有办法吗?提到彗星,人们往往最先联想到哈雷彗星。但在4月12日,美国宇航局的一则信息公布了另一个即将袭来的重量级彗星,足足重达500万亿吨。这颗迄今为止体积重量都稳居第一的彗星,正在以每小时什么是类星体类星体是活动星系核(AGN)中非常活跃和发光的一类。所有类星体都是活动星系核,但并非所有活动星系核都是类星体。类星体是活动星系核(AGNs)的一个子类,是极其明亮的星系核心,其中落天和视角下的神十三撤离天和视角下的神十三撤离10月16日,宇航员翟志刚进入天和核心舱。王亚平右和叶光富。左向人民伸手致敬。去年10月16日早上,神舟十三号人载飞机成功发射了翟志刚王亚平和叶光富3宇航员。终于解开先有鸡还是蛋了古老的谜语终于解开了。鸡蛋比鸡大很多。鸡是恐龙进化来的,而恐龙是从海洋生物发展进化来的,首先由柔软无骨的生物演变出具有体内骨架的鱼类,鱼类又演变成了在陆地上行走的两生类,并接着演变黑障区是什么?为什么会跟宇航员失联五分钟?神舟飞船回来有多难宇航员曾提起返回地球时,要经历的可怕黑色五分钟究竟是什么?原来这可怕的黑色五分钟有另外的名字,名字为黑障区也叫黑障。关于它的具体展现则是因为飞船在进入返程状态后,需要突破大气层。关经受2000灼烧,神十三返回舱外部烧成黑不溜秋,返回时遭遇了啥对于航天爱好者来说,这段时间相信大家都在关注我们空间站以及载人飞船的消息,因为我们国家空间站的建造工作正在稳步推进中,在这个过程中,也不断刷新了我国在航天领域的各种纪录。其中一个纪我国公开神舟13号撤离的真实画面!飞船缓缓飞行,是谁拍摄的?一艘巨型航天器正在地球附近的环绕轨道上无声地飞行着,看起来是那么孤独,它的上方是漆黑如墨的浩瀚太空,它的下方是不断变换的蓝天白云,因为地球表面在以465米秒的线速度不断地旋转。突然水能不能被压缩,如果强制压缩水,会发生什么严重的后果?你有没有想过一个问题,就是我们生活中最常见的水能不能被压缩?如果水一旦被压缩的话,又可能会产生什么严重的后果呢?组成宇宙最基本的例子就是原子,而每个物质中间都有一定的缝隙,也就是说SpaceX首个全私人宇航团队返回地球,曾滞留国际空间站数日极目新闻记者孙喆据卫报报道,美东时间4月25日下午1时许,美国太空探索技术公司(SpaceX)首个全私人宇航团队在佛罗里达州沿岸着陆,成功返回地球。此前,SpaceX曾在其网站上发(外代一线)美国首个赴国际空间站的全私人宇航团队返回地球美国首个由私营公司组织前往国际空间站的全私人宇航团队4月25日搭乘美国太空探索技术公司的龙飞船返回地球,降落在佛罗里达州海岸附近。这张由美国太空探索技术公司4月25日提供的视频截图