• 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 服务器内部错误
  • 相关阅读:
    腾讯微博登录组件
    daffodil
    素数是个什么东西 prime number
    sama5d3 xplained 文件系统配置IP,系统复位后IP丢失[已解决]
    sama5d3 xplained 系统加载后确认使用的网口
    SAMA5D3 Xplained 开发板烧写官方固件后启动失败【已解决】
    linux文件系统解压 tar: Exiting with failure status due to previous errors [Solved]
    安装POSIX man 手册
    老子《道德经》第四十三章
    老子《道德经》第四十二章
  • 原文地址:https://www.cnblogs.com/Erick-L/p/7097324.html
Copyright © 2020-2023  润新知