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中内置的itertools模块
Apr 29 Python
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
Python+Opencv识别两张相似图片
Mar 23 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python实现的个人所得税计算器示例
Jun 01 Python
python人民币小写转大写辅助工具
Jun 20 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
如何用python写一个简单的词法分析器
Dec 18 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
JAVA/JSP学习系列之六
2006/10/09 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
短信提示使用 特效
2007/01/19 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
python购物车程序简单代码
2018/04/18 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
python中setuptools的作用是什么
2020/06/19 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
一道SQL面试题
2012/12/31 面试题
幼儿园小班教学反思
2014/02/02 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
防汛通知
2015/04/25 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
nginx服务器的下载安装与使用详解
2021/08/02 Servers