对DJango视图(views)和模版(templates)的使用详解


Posted in Python onJuly 17, 2019

视图

在django中,视图对WEB请求进行回应

视图接收reqeust对象作为第一个参数,包含了请求的信息

视图就是一个Python函数,被定义在views.py中

定义完成视图后,需要配置urlconf,否则无法处理请求

在Django中,定义URLconf包括正则表达式、视图两部分

Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图

注意:只匹配路径部分,即除去域名、参数后的字符串

在test1/urls.py插入booktest,使主urlconf连接到booktest.urls模块

视图代码

# views.py
# 一个简单的视图,固定返回 hrllo world
def index(request):
  return HttpResponse('hello world')

模板

模板是html页面,可以根据视图中传递的数据填充值

模板和应用booktest是同级目录

模板的结构templates/应用名(booktest)/*.html

将模板的地址信息拼接在settings.py文件中的TEMPLATES的DIRS值中:'DIRS': [os.path.join(BASE_DIR, ‘templates')],

urls代码

方式一: 直接修改原始的urls

# fanlie/fanlei/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from booktest import views

urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  # 如果匹配的是空就就调用views.index返回首页
  url(r'^$',views.index),
]

方式二: 在应用目录下修改

# fanlie/fanlei/urls.py
urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  # 什么都不干直接去booktest.urls去找相应的匹配
  url(r'^',include('booktest.urls')),
]

# fanlei/booktest/urls.py
from django.conf.urls import url
from . import views

urlpatterns = [
  # js结尾就是调用视图中的函数 js
  url(r'.*.js',views.js),
  # 直接访问代表是首页,调用视图中的函数index
  url(r'^$', views.index),
  # 如果是image开头的代表是图片,直接让DJango去打开对应的图片返回
  url(r'^images/(?P<path>.*)', 'django.views.static.serve', {'document_root':'/home/python/Desktop/fanlei/templates/booktest/images'}),

]

上面模板用到的视图

from django.shortcuts import render

def index(request):
  # 返回引号中的文件的内容
  return render(request, 'booktest/index.html')

def js(request):
  # 返回引号中的文件的内容
  return render(request,'booktest/jquery-1.12.4.js')

以上这篇对DJango视图(views)和模版(templates)的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的jquery PyQuery库使用小结
May 13 Python
简述Python中的进程、线程、协程
Mar 18 Python
深入理解NumPy简明教程---数组1
Dec 17 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
Python使用Django实现博客系统完整版
Sep 29 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
python将时分秒转换成秒的实例
Dec 07 Python
Python Numpy库常见用法入门教程
Jan 16 Python
react+django清除浏览器缓存的几种方法小结
Jul 17 #Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 #Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 #Python
对django views中 request, response的常用操作详解
Jul 17 #Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 #Python
python递归法解决棋盘分割问题
Jul 17 #Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 #Python
You might like
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
php调用shell的方法
2014/11/05 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
js如何打印object对象
2015/10/16 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
python求前n个阶乘的和实例
2020/04/02 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
帝企鹅日记观后感
2015/06/10 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书