首页 > 其他分享 >【django学习-03】URLS(路由系统)

【django学习-03】URLS(路由系统)

时间:2022-08-30 22:34:44浏览次数:70  
标签:03 URLS views py 视图 django urls path include

  • 一:URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。
    • urlpatterns = [url(正则表达式, views视图函数,参数,别名),]

      • 参数说明:
      • 一个正则表达式字符串
      • 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
      • 可选的要传递给视图函数的默认参数(字典形式)
      • 一个可选的name参数
    • 1、参数1

      • 可以使用正则表达式提取参数,传递给视图函数进行逻辑判断
      • 1.1:无命名
#urls.py
re_path('mydata/([0-9]{4})/([0-9]{2})',views.myData),     #视图函数需要传入两个形参接收这里()起来的内容,无命名

#views.py
def myData(req,y,m):
    return HttpResponse("year"+ y+"month"+m)
- 1.2:有命名
#urls.py
re_path('mydata_name/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})',views.myData_name),     #视图函数需要传入两个参接收这里正则提取的内容,有命名

#views.py
def myData_name(req,year,month):
    return HttpResponse("year"+ year+"month"+month)
  • 2、参数2,对应的views视图函数名称
  • 3、参数3
  • 必须传入键值对
#urls.py
re_path('mydata_name1/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})',views.myData_name1,{"name":"xwl"}),

#views.py
def myData_name1(req,year,month,name):
    return HttpResponse("year"+ year+"month"+month+name)
  • 4、参数4
    • 别名,目的:后台修改路径,前端不需要逐个替换,使用别名即可
#urls.py
re_path('login',views.login,name="xwl"),

#views.py
def login(req):
    if req.method == "POST":
        username = req.POST.get("username")
        pwd = req.POST.get("pwd")
        if username == "xwl" and pwd == "123":
            return HttpResponse("登录成功!!!")

    return render(req,"login.html")

#templates/login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{#<form action="/login" method="post">#}
<form action="{% url "xwl" %}" method="post">
{#    使用别名#}
    <input type="text" name="username">
    <input type="password" name="pwd">
    <input type="submit" value="submit">
</form>

</body>
</html>
  • 二:路由分发
    • 试想一下,向京东这种大项目,网页有成千上万,我们在整个urls中逐一配置每个页面的话,可能有冲突、不方便管理。如是我们可以在不同的APP下新建urls.py,管理相应app的路由映射。在总的urls.py中分发即可
    • 1、对应的APP下新建urls.py文件
    • 2、注释掉mysite828/urls.py中的路由,拷贝到blog/urls.py文件中
    • 3、mysite828/urls.py中路由分发
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
- 4、blog/urls.py配置即可
#mysite828/urls.py
from django.contrib import admin
from django.urls import path,re_path,include
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^blog/', include("blog.urls")),
]

#views.py
def include_ces(req):
    return HttpResponse("include")

#blog/urls.py
from django.urls import path,re_path,include
from blog import views

urlpatterns = [
    re_path('include/', views.include_ces),

]

标签:03,URLS,views,py,视图,django,urls,path,include
From: https://www.cnblogs.com/xwltest/p/16641113.html

相关文章

  • NC21303 删括号 问删除括号对,能否将s转变成 t 线性DP 栈
     链接:https://ac.nowcoder.com/acm/problem/21303来源:牛客网题目描述给你一个合法的括号序列s1,每次你可以删除一个"()"你可以删除0个或者多个......
  • CF1603D Artistic Partition
    这是道有趣的观察性质题,可惜我没有脑子。看到这个dp形式就非常整体二分,所以它就是整体二分(雾我们先令\(c(i,j)\)表示\(i\lex<y\lej,\gcd(x,y)\gei\)的数量,输出......
  • 【django学习-03】Django的配置文件(settings)
    Django的配置文件setting.py用于配置整个网站的环境和功能,核心配置必须有项目路径、秘钥配置、域名访问权限、APP列表、中间件、资源文件、模板配置、数据库的链接方式等......
  • python的django写页面上传文件以及遇到的问题
    首先上结构mynode->app5->urls.py&views.py           |->templates->5->upload.html           |->mynode->urls.py   ......
  • CCPC Qinhuangdao 2020 K, Kingdom's Power做题思路
    首先,对于一个子树,我们显然只有两种去让军队走过他的办法,一种是从兄弟节点调一些军队来,另一种是从根节点推过来。感觉有一个结论,就是我这个位置如果用兄弟节点推过来的只是......
  • PAT Advanced 1030 Travel Plan(30)
    题目描述:Atraveler'smapgivesthedistancesbetweencitiesalongthehighways,togetherwiththecostofeachhighway.Nowyouaresupposedtowriteaprogra......
  • gym-101667F Philosopher's Walk
    Philosopher'sWalk递归分治判断一下当前走的位置是属于\(4\)个块中的第几个块,然后递归计算一下在边长变小一倍后,他应该所处的位置,然后再对原位置进行旋转或平移的操作......
  • CF603E Pastoral Oddities
    CF603EPastoralOddities给定一张\(n\)个点的无向图,初始没有边。依次加入\(m\)条带权的边,每次加入后询问是否存在一个边集,满足每个点的度数均为奇数。若存在,则还......
  • 关于 Spring Security 携带 token 反而 403 的问题
    https://www.cnblogs.com/liouzeshuen/p/16198795.html 某个目录下允许不登录访问.antMatchers("/activity/index").anonymous()但是传了token反而报403改成.antMatc......
  • 将获取的['json字段'] 转为csv 文件 - 数据转格式化处理
    用到的函数:1、eval():eval()函数常被称为评估函数,它的功能是去掉参数最外侧引号,变成python可执行的语句,并执行语句的函数。2、isinstance():isinstance()函数来判断一......