分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Django 1.8_视图和URL配置

发布时间:2023-09-06 02:21责任编辑:董明明关键词:配置

前情提要

  学习了如何创建django项目,运行开发django服务器,并了解了mvc模式。

内容

  VIEW

  URL

    正则表达式

    错误解析与寻求帮助

  • hello world.html
  • dynamic_date.html
  • dynamic_date_offset.html 

   Django处理请求的过程

Helloword

  创建一网页,打开即显示helloworld。

  其中网页内容由视图生成,并配置URL。

    在mysite/mysites下创建views.py并编辑

1 from django.http import HttpResponse2 3 def hello(request):4 ????return HttpResponse(‘HELLO, WORLD!‘)
views.py
 1 from django.conf.urls import include, url ?2 # include,导入另一个url的配置模块 3 # url,使用正则表达式模式匹配浏览器中的url,并映射到django项目的某个模块上 4 from django.contrib import admin ?5 from mysite import views ?6 ?7 urlpatterns = [ 8 ????url(r‘^admin/‘, include(admin.site.urls)), 9 ????url(r‘^hello/$‘, views.hello), 10 ]
urls.py

dynamic_date

 1 from django.http import HttpResponse 2 import datetime 3 ?4 def hello(request): 5 ????return HttpResponse(‘HELLO, WORLD!‘) 6 ?7 # new add 8 def current_datetime(request): 9 ????now = datetime.datetime.now()10 ????html = "It‘s now %s." % now11 ????return HttpResponse(html)
views.py
 1 from django.conf.urls import include, url ?2 # include,导入另一个url的配置模块 3 # url,使用正则表达式模式匹配浏览器中的url,并映射到django项目的某个模块上 4 from django.contrib import admin ?5 from mysite import views ?6 ?7 urlpatterns = [ 8 ????url(r‘^admin/‘, include(admin.site.urls)), 9 ????url(r‘^hello/$‘, views.hello), 10 ????# new add11 ????url(r‘^time/$‘, views.current_datetime)12 ]
urls.py

dynamic_date_offset

 1 from django.conf.urls import include, url ?2 # include,导入另一个url的配置模块 3 # url,使用正则表达式模式匹配浏览器中的url,并映射到django项目的某个模块上 4 from django.contrib import admin ?5 from mysite import views ?6 ?7 urlpatterns = [ 8 ????url(r‘^admin/‘, include(admin.site.urls)), 9 ????url(r‘^hello/$‘, views.hello), 10 ????url(r‘^time/$‘, views.current_datetime),11 ????# new add12 ????url(r‘^time/plus/(\d{1,2})/$‘, views.hours_ahead) # 限制使用一个或者两个数字,最大偏移为9913 ]
urls.py
 1 from django.http import HttpResponse, Http404 2 import datetime 3 ?4 def hello(request): 5 ????return HttpResponse(‘HELLO, WORLD!‘) 6 ?7 def current_datetime(request): 8 ????now = datetime.datetime.now() 9 ????html = "It‘s now %s." % now10 ????return HttpResponse(html)11 12 # new add13 def hours_ahead(request, offset):14 ????try:15 ????????offset = int(offset) # 捕捉url中的偏移量数字,为unicode编码,转化成数字,后续用16 ????except ValueError:17 ????????raise Http404()18 ????dt = datetime.datetime.now() + datetime.timedelta(hours=offset)19 ????html = "In %s hours, it will be %s" %(offset, dt)20 ????return HttpResponse(html)
views.py

Note: URL 和视图之间是松耦合的,即可以通过多个url定位到同一个视图,改变一个对另一个影响很小。

正则表达式

  .  单个字符

   \d  单个数字

  [A-Z]  大写字母中的某一个

  [a-z]  小写字母中的某一个

  [A-Za-z]  不区分大小写的某一个字母

     +    一个或者多个前述表达式  \d+

  [^/]+    一个或多个字符,直到遇到斜线

  ?    零个或者一个前述表达式  \d?

   *    零个或者多个前述表达式  

  {1,3}  介于一个到三个之间前述表达式 

Django处理请求的过程

  点击url,后显示页面,django做了什么

  1. 请求/hello/
  2. Django查看ROOT_URLCONF设置,找到根URL配置
  3. Django比较URL配置中的各个URL模式,找到与/hello/匹配的那个
  4. 如果找到匹配的模式,调用对应的视图函数
  5. 视图函数返回一个HttpResponse对象
  6. Django把HttpResponse对象转化正确的HTTP响应,得到网页

错误解析和寻求帮助

  页面顶部是异常关键信息: 异常类型和消息,抛出异常的文件以及所在的行号

  Trackback标题旁边有“Switch to copy-and-paste view”文本。点击后,就会切换到另一个版本,以便分享给别人,寻求帮助。

Django 1.8_视图和URL配置

原文地址:https://www.cnblogs.com/dignity/p/9941045.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved