zoukankan      html  css  js  c++  java
  • Python大神

    urls又称路由系统

    一、url 用法

    1 注意写法:
    2    url(r'^form/$',views.userform,name='form_one') # 函数的写法
    3    url(r'^form/$',views.userform.as_view(),name='form_one') # 类的写法
    4    1)域名部分会被过滤掉
    5    2)form前面不需要添加/,因为前序url的末尾一定会有/ ( url(r'^form/(d{4})/$)
    6    3)任何组匹配的变量,都会以字符串的形式传递给view(可以是一个函数,也可以是类)

    二、url简单形式(单一对应)

    url(r'^index$', views.index),

    三、url正则匹配(无法把分组的串传递给后台)

    url(r'^articles/(d{4})/(d{2})/$', 'news.views.month_archive')

    四、url正则匹配,(把分组的数据传递给后台)

    利用named group来传递参数
    url(r'^articles/(?P<year>d{4})/(?P<month>d{2})/$', 'news.views.month_archive')
    
    view获取数据
    class TestView(View):
        def get(self,year,month)
            pass
    
    year,month 就是传递过来的值

    五、url别名

    作用:无论全面的匹配字段如何变化,在html引用的别名不用变

    1、url(r'^form/$',views.userform,name='form_one') # url 别名为form_one
    2、html文件引用别名
    {% url 'form_one' %}
    3、在view中使用
    from django.core.urlresolvers import reverse
    return HttpResponseRedirect(reverse("index")) # 与reverse函数一起使用

    六、给每个app设置一个urls.py文件(根据app对路由规则进行分类

    1、在项目中的urls.py 引用:
        url(r'^appname/',include('appname.urls',namespace=app)) 
    2、html文件引用别名
        {% url 'app:form_one %}  # url是内置函数
            
    附:
      # 链接到某个数据的详情时
      {% url 'course:coursedecs' course.id %} == {% url 'course:coursedecs' %}?course_id={{ course_id }}
                

    七、django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。

    通过反射机制,为django开发一套动态的路由系统Demo: 点击下载

  • 相关阅读:
    217MySQL读写分离mysqlproxy
    shell脚本自动化安装LAMP
    Mybatis的如何根据下划线_,百分号%模糊查询escape的作用
    springboot下MVC的MessageConverters和静态资源位置的配置
    全局性事务控制如何在springboot中配置
    最详细的@Transactional讲解
    常用网址
    truncate、drop、delete区别
    CommandLineRunner、ApplicationRunner 接口
    交叉编译,为什么需要交叉编译
  • 原文地址:https://www.cnblogs.com/langzibin/p/7693655.html
Copyright © 2011-2022 走看看