zoukankan      html  css  js  c++  java
  • Django之反向生成url

    说明:

      通过反向生成,可以实现通过models中的表名、app名等灵活生成相应的url路径。

    首先介绍一下Django的url

     

    1.django项目文件中的settings.py中

    1 ROOT_URLCONF = 'CRM_project.urls'

    设置了浏览器访问该项目都将从CRM_project目录下的urls文件中定制的url路径访问。

     2.Django默认设置的url在项目CRM_project目录下的urls.py文件中。

    from django.conf.urls import url,include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
    ]

    这个url路由的意义就是,通过正则匹配用户浏览器访问的url地址,然后对应一个view视图函数,

    发给视图函数一个request,视图函数会返回一个response给浏览器。

    1 urlpatterns = [
    2 url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
    3 url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
    4 url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
    5 url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
    6 
    7 ]
    可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。
    通过圆括号可以进行位置传参,通过有名分组的方式可以进行关键字传参。
    在Python 正则表达式中,命名正则表达式组的语法是(?P<name>pattern),其中name 是组的名称,pattern 是要匹配的模式。
    1 # urls.py
    2 # 替换index的url
    3 url(r'^$', views.index, {'string': 'Hello World!'})
    4 
    5 # views.py
    6 def index(request, string):
    7     return HttpResponse(string, 'text/plain')

    可以通过在路由表中写一个字典来给视图函数传参。

    ps:

    application/xml 、 text/xml、text/html、text/plain的区别

    1、text/html是html格式的正文

    2、text/plain是无格式正文

    3、text/xml忽略xml头所指定编码格式而默认采用us-ascii编码

    4、application/xml会根据xml头指定的编码格式来编码。

    Url的命名空间

     

  • 相关阅读:
    Hibernate4学习day0--hibernate封装--注解--单元测试
    Hibernate4学习day01--简介--基本配置
    java基础day13---引用数据类型
    java基础day14---static关键字-----继承
    java基础day12---this 关键字-----参数传递
    day05 Struts2文件上传和下载---防重复提交
    java基础day11---空指针异常----引用类型--自定义类型赋值--封装
    java基础的第二轮快速学习!day10
    Struts2,大爷你好!第四天
    java基础的第二轮快速学习!day09
  • 原文地址:https://www.cnblogs.com/ArmoredTitan/p/7702600.html
Copyright © 2011-2022 走看看