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 视图层的更多相关文章

  1. web框架开发-Django视图层

    视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...

  2. Django视图层

    本文目录 1 视图函数 2 HttpRequest对象 3 HttpResponse对象 4 JsonResponse 5 CBV和FBV 6 简单文件上传 回到目录 1 视图函数 一个视图函数,简称 ...

  3. django——视图层

    1. 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...

  4. django视图层(views)

    1.视图层概念 视图函数,其实就是一个简单的函数,它接收web请求并返回web响应(响应的可以是一个html,一个重定向,一个xml文档等等) 每个视图函数都负责返回一个HttpResponse对象. ...

  5. [Django框架之视图层]

    [Django框架之视图层] 视图层 Django视图层, 视图就是Django项目下的views.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相 ...

  6. DjangoMTV模型之视图层views及模板层template

    Django视图层中views的内容 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容(render),也可以是一个重定向( ...

  7. django 实战篇之视图层

    视图层(views.py) django必会三板斧 HttpResponse >>> 返回字符串 render >>> 支持模板语法,渲染页面,并返回给前端 red ...

  8. $Django 虚拟环境,2.0、1.0路由层区别,Httprequest对象,视图层(fbv,cbv),文件上传

    1 虚拟环境:解决问题同一台机器上可以运行不同版本的django,  1 用pychanrm创建--->files-->newproject--->选择虚拟环境  2 setting ...

  9. python 全栈开发,Day69(Django的视图层,Django的模板层)

    昨日内容回顾 相关命令: 1 创建项目 django-admin startproject 项目名称 2 创建应用 python manage.py startapp app名称 3 启动项目 pyt ...

随机推荐

  1. 【BZOJ4805】欧拉函数求和(杜教筛)

    [BZOJ4805]欧拉函数求和(杜教筛) 题面 BZOJ 题解 好久没写过了 正好看见了顺手切一下 令\[S(n)=\sum_{i=1}^n\varphi(i)\] 设存在的某个积性函数\(g(x) ...

  2. 【BZOJ1040】骑士(动态规划)

    [BZOJ1040]骑士(动态规划) 题面 BZOJ 题解 对于每一组厌恶的关系 显然是连边操作 如果是一棵树的话 很显然的树型\(dp\) 但是,现在相当于有很多个基环 也就是在一棵树的基础上再加了 ...

  3. IDEA jsp模板

    > File > Settings- > File and Code Templates > Other >Jsp files >Jsp File.jsp < ...

  4. Android 中 SearchView

    package com.example.euphemiaxiao.classsearch; import android.os.Bundle; import android.support.v7.ap ...

  5. 【翻译】《向“弹跳球”演示程序添加新功能》 in MDN

    文章地址: https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/%E5%90%91%E2%80%9C%E5%BC%B9% ...

  6. Redis学习日记-01

    Redis是什么东东? Redis是用C语言开发的Key-Value数据库,说是数据库,其实他是NoSql(非关系型数据库). 这里顺便说一下Sql(关系型数据库,如MySql,Oracle等)和No ...

  7. 【MyBatis】MyBatis自动生成代码查询之爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

  8. TestNG的简单使用

    TestNG的简单使用 TestNG(Test Next Generation)是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便. TestNG是 ...

  9. 去中心化类微博应用 mastodon

    一句话重点,去中心,没监管,自己对自己信息做主,没人随便删你消息的分布式社交应用 mastodon. 建了一个实例, https://cncs.io 来专门讨论计算机相关信息,欢迎大家注册来玩.已有用 ...

  10. javascript排序、功能代码总结[长期更新]

    //基本数组去重 ///输入:向数组中添加功能函数unique ///输出:返回一个没有重复元素的数组 Array.prototype.unique = function(){ result =[]; ...