• django第三天(路由基础和路由分配)


    路由基础

    url(正则路径,视图函数地址,默认关键字参数,路由别名)
    路由由上而下匹配,
    ""可以匹配任意路由
    "^$"来匹配"/"
    url("index/$",views.error)
    url("index",views.index)
    路由先从上到下匹配一次,匹配不上会自动添加/再匹配一次,故index匹配到index
    如果想取消默认添加/
    ①注释掉settings.py MIDDLEWARE = [.middleware.common.CommonMiddleware]
    ②将APPEND_SLASH设置为False
    

    有名无名分组

    无名分组
    路由端:
    url(r"^login/(d+)/$",views.login)
    视图函数端:
    def login(request,var)
    
    有名分组
    路由端:
    url(r"^login/(?P<user>d+)/(?P<pwd>d+)/$",views.login)
    视图函数端:
    def login(request,user,pwd)
    #注:有名无名不能混用
    

    多app共存的路由分配

    在主路由中有多个app,防止视图函数冲突
    ①视图函数命名加上项目名app01_login
    ②import app01,app02
    url(r"^app01/login/$",app01.login)
    ③路由分发
    1.在每一个应用中建立自身的urls.py文件,语法同主路由
    2.在主路由进行分发
    from django.conf.urls import include
    urlpatterns = [
        url(r'^app01/',include('app01.urls')),
        url(r"^app02/",include('app02.urls'))
    ]
    

    多app共存时模板冲突问题

    多app共存时,可能存在相同的功能,转跳相同名称的html(模板),造成模板冲突
    解决方法:
        ①模板名前面加上项目app01_login.html
        ②在根目录的templates下创建项目名相同的文件夹,render(request,"app_name/login.html")
    
  • 相关阅读:
    小结:ES7——async和await初识
    如何抽离、引用公共部分页面
    数据处理:高德、百度经纬度坐标的相互转化
    mock数据的基础使用
    express随笔
    ES6学习基础
    初学node.js
    ajax基础
    ajax的几个面试题
    (转)认识原型对象和原型链
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10478843.html
Copyright © 2020-2023  润新知