Django视图和URL配置详解


Posted in Python onJanuary 31, 2018

本文研究的主要是Django视图和URL配置,具体介绍如下。

一、视图

1.在mysite文件夹下,创建views.py文件(文件名没有特别的要求);

from django.http import HttpResponse 
   def hello(request): 
     return HttpResponse("Hello world")

2.修改mysite文件夹下的urls.py文件;

from django.conf.urls import url 
from django.contrib import admin 
 
from mysite.views import hello 
 
urlpatterns = [ 
  url(r'^admin/', admin.site.urls), 
  url(r'^hello/$', hello), 
]

3.运行命令:python manage.py runserver。在浏览器访问http://127.0.0.1:8000/hello/;

4.你的URL申请在URLconf中没有定义,“404错误”页面就会显示,它精确的告诉你Django调用在哪个URLconf及其包含的每个模式,该页面只会在调试模式(debug mode)下显示;

Django视图和URL配置详解

二、Django是如何处理请求

1.当你运行python manage.py runserver,在manage.py同一个目录下查找名为setting.py的文件,该文件包含了关于所有Django项目的配置信息;

ROOT_URLCONF='mysite.urls'#指向自动生产的urls.py

2.浏览器里敲http://127.0.0.1:8000/hello访问时候,根据ROOT_URLCONF的设置装载URLconf,然后按顺序逐个匹配URLConf里面的URLpatterns,直到找到一个匹配的;

3.当找到这个匹配的URLpatterns就调用相关联的view函数,并把HttpRequest对象作为第一个参数;

4.Django转换成HttpResponse为一个适合的HTTP reponse,以Web page显示出来;

三、动态内容

1.在项目views.py中添加,如下视图:

from django.http import HttpResponse 
import datetime 
 
  def hello(request): 
    return HttpResponse("Hello world") 
 
  def current_datetime(request): 
    now = datetime.datetime.now() 
    html = "<html><body>It is now %s.</body></html>" % now 
    return HttpResponse(html)

2.在项目urls.py中添加,如下配置:

from django.conf.urls import url 
from django.contrib import admin 
 
from mysite.views import hello , current_datetime 
 
urlpatterns = [ 
  url(r'^admin/', admin.site.urls), 
  url(r'^hello/$', hello), 
  url(r'^time/$', current_datetime), 
]

3.重新启动服务,访问http://127.0.0.1:8000/time

Django视图和URL配置详解

4.松耦合原则,URL的定义和视图函数之间的松耦合;

四、动态URL

1.在项目views.py中添加,如下视图:

from django.http import HttpResponse , Http404 
import datetime 
... ...  
def hours_ahead(request, offset): 
  try: 
    offset = int(offset) 
  except ValueError: 
    raise Http404() 
  dt = datetime.datetime.now() + datetime.timedelta(hours=offset) 
  html = "<html><body>In %s hours(s), it will be %s.</body></html>" % (offset, dt) 
  return HttpResponse(html)

2.在项目urls.py中添加,如下配置:

from django.conf.urls import url 
from django.contrib import admin 
 
from mysite.views import hello , current_datetime , hours_ahead 
 
urlpatterns = [ 
  url(r'^admin/', admin.site.urls), 
  ... ...  
  url(r'^time/plus/(\d{1,2})/$', hours_ahead), 
]

3.重新启动服务,访问http://127.0.0.1:8000/time/1

Django视图和URL配置详解

总结

以上就是本文关于Django视图和URL配置详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python获得两个数组交集、并集、差集的方法
Mar 27 Python
python中xrange用法分析
Apr 15 Python
Python制作数据导入导出工具
Jul 31 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
python利用lxml读写xml格式的文件
Aug 10 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
使用python实现ANN
Dec 20 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
python交互界面的退出方法
Feb 16 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
python绘制彩虹图
Dec 16 Python
解决python脚本中error: unrecognized arguments: True错误
Apr 20 Python
Python编程求质数实例代码
Jan 31 #Python
Python及Django框架生成二维码的方法分析
Jan 31 #Python
Python进阶之尾递归的用法实例
Jan 31 #Python
简单的python协同过滤程序实例代码
Jan 31 #Python
Python进阶之递归函数的用法及其示例
Jan 31 #Python
Python tkinter事件高级用法实例
Jan 31 #Python
pyqt5自定义信号实例解析
Jan 31 #Python
You might like
MVC模式的PHP实现
2006/10/09 PHP
PR值查询 | PageRank 查询
2006/12/20 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
php xhprof使用实例详解
2019/04/15 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
js实现进度条的方法
2015/02/13 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
在django模板中实现超链接配置
2019/08/21 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
求职简历自荐信
2013/10/20 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
村班子对照检查材料
2014/08/18 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
七一建党日演讲稿
2014/09/05 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
导游词之昭君岛
2020/01/17 职场文书
python数字转对应中文的方法总结
2021/08/02 Python
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫