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执行等待程序直到第二天零点的方法
Apr 23 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
django Serializer序列化使用方法详解
Oct 16 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Python实现GIF图倒放
Jul 16 Python
python 装饰器的实际作用有哪些
Sep 07 Python
Python中pass的作用与使用教程
Nov 13 Python
python 逐步回归算法
Apr 06 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 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
header导出Excel应用示例
2014/01/24 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
js 操作css实现代码
2009/06/11 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
详解python基础之while循环及if判断
2017/08/24 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
微信跳一跳游戏python脚本
2020/04/01 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
Python字典遍历操作实例小结
2019/03/05 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
职工运动会邀请函
2014/02/02 职场文书
党支部工作总结2015
2015/04/01 职场文书
2015年环卫工作总结
2015/04/28 职场文书
2015年教研员工作总结
2015/05/26 职场文书