Django 视图层
URL映射
1、分布式url映射
include()函数提供分布式url映射功能,使URL映射可以被编写在多个url.py文件中
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^app/', include('app.urls')), # 反向解析到app/urls.py中
]
2、反向解析
from django.conf.urls import url
from . import views urlpatterns = [
url(r'moments_input',views.moments_input),
url(r'wc',views.welcome,name='welcome'),# 通过name参数将该映射命名为welcome
]
- 反向解析在模版中调用方法:在模版文件中用{%url%}标签反向解析
<a href="{% url 'welcome' %}">查看信息</a>
<a href="/app/welcome/">查看信息</a>
- python中用django.core.urlresolvers.reverse()函数调用反向解析
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse def moments_input(request): return HttpResponseRedirect(reverse('welcome'))
3、带参数的反向解析
from django.conf.urls import url
from . import views urlpatterns = [
url(r'^year/?P<year>([0-9]{4})/$',views.year_moments,name='moments')
]
在模版文件中反向解析,直接在{%url%}标签中添加参数
<a href="{% url 'moments' ,2014%}">查看信息</a>
<a href="/year/2014/">查看信息</a>
python 代码中带参数反向解析
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse def redirect_to_year_2014(request): return HttpResponseRedirect(reverse('moments',args=(2014,)))
reverse()函数的args参数用于设置反向映射url参数
视图函数
- 直接构造HTTP Body: 比如直接返回当前时间给客户端
- 用数据渲染HTML模版文件:需要用django.shotcuts.render()函数实现
return render(request,'templates/moments.html',{'headline':m.headline,'user':m.user_name})
- 返回HTTP错误
from django.http import HttpResponseNotFound def my_view(request):
return HttpResponseNotFound()
HttpResponseRedirect 302 用于URL重定向
HttpResponseNotModified 304 用于将上次请求缓存结果作为页面显示内容
HttpResponsePermanentRedirect 301 永久重定向
HttpResponseBadRequest 400 请求内容错误
HttpResponseForbidden 403 禁止访问错误
HttpResponseNotAllowed 405 用不允许的方法访问本页面
HttpResponseServerError 500 服务器内部错误
Django 视图层的更多相关文章
- web框架开发-Django视图层
视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...
- Django视图层
本文目录 1 视图函数 2 HttpRequest对象 3 HttpResponse对象 4 JsonResponse 5 CBV和FBV 6 简单文件上传 回到目录 1 视图函数 一个视图函数,简称 ...
- django——视图层
1. 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
- django视图层(views)
1.视图层概念 视图函数,其实就是一个简单的函数,它接收web请求并返回web响应(响应的可以是一个html,一个重定向,一个xml文档等等) 每个视图函数都负责返回一个HttpResponse对象. ...
- [Django框架之视图层]
[Django框架之视图层] 视图层 Django视图层, 视图就是Django项目下的views.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相 ...
- DjangoMTV模型之视图层views及模板层template
Django视图层中views的内容 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容(render),也可以是一个重定向( ...
- django 实战篇之视图层
视图层(views.py) django必会三板斧 HttpResponse >>> 返回字符串 render >>> 支持模板语法,渲染页面,并返回给前端 red ...
- $Django 虚拟环境,2.0、1.0路由层区别,Httprequest对象,视图层(fbv,cbv),文件上传
1 虚拟环境:解决问题同一台机器上可以运行不同版本的django, 1 用pychanrm创建--->files-->newproject--->选择虚拟环境 2 setting ...
- python 全栈开发,Day69(Django的视图层,Django的模板层)
昨日内容回顾 相关命令: 1 创建项目 django-admin startproject 项目名称 2 创建应用 python manage.py startapp app名称 3 启动项目 pyt ...
随机推荐
- Python基础_如何用pip安装文件
与其他语言相比,Python的一个很大的优势是由丰富的资源库,这就需我们按照自己的来安装文件和包.本节以在windows系统下安装pygame 为例来讲述一下安装步骤. 1. 检测python中有没有 ...
- C#多线程编程(3)--开启子任务
上一篇我讲解了await和async关键字,这两个关键字的作用是将async限定的方法中await关键字后面的部分封装成一个委托,该委托会在await修饰的Task完成后再执行.简单的说,就是等待任务 ...
- jpgraph 折线图--解决中文乱码的问题(标题和图例)
在jpgraph根目录中: 如Jpg\jpgraph_ttf.inc.php 中开头添加 define('CHINESE_TTF_FONT','SIMYOU.TTF'); \Jpg\jpgraph_l ...
- I/HwPointEventFilter: do not support AFT because of no config
I/HwPointEventFilter: do not support AFT because of no config 这是华为对系统做了修改,默认不打印日志,要改配置 在拨号界面输入:以下进入工 ...
- Educational Codeforces Round 37
Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...
- 【Luogu3808】多项式乘法FFT(FFT)
题目戳我 一道模板题 自己尝试证明了大部分... 剩下的还是没太证出来... 所以就是一个模板放在这里 以后再来补东西吧.... #include<iostream> #include&l ...
- 1.2为什么需要public static void main(String[] args)这个方法
一句话:这个方法为程序的入口方法,JVM在运行程序的时候,会首先查找main()方法. 细节: public为权限修饰符,表示任何对象和方法都可以访问这个方法. static表示方法为静态的(即方法中 ...
- 在linux上安装dotnetcore
dotnet core已经出来有一段时间了,不是什么新名词了.但这个技术,目前还是比较新的,企业也没有普遍应用.它最大的亮点就是跨平台,也就是我们写的c#代码,可以运行在linux上. 在国内学习do ...
- 原来你是这样的Websocket--抓包分析
之前自己一个人负责完成了公司的消息推送服务,和移动端配合完成了扫码登录.订单消息推送.活动消息广播等功能.为了加深自己对Websocket协议的理解,自己通过进行抓包的方式学习了一番.现在分享出来,希 ...
- 关于Android 7.0无法进行https抓包的问题
在App进行数据请求的时候,如果每次都打印log去判断是一件很不"人性化"的操作行为,所以一般都会进行抓包分析. 以最常用的软件Fiddler来说,进行普通的http抓包没什么事, ...