zoukankan      html  css  js  c++  java
  • Django重点之url别名

    django重点之url别名[参数名必须是name,格式是name="XXX]

    1 不论后台路径如何进行修改路径,前台访问的路径不变,永远是alias, 这样方便开发
    2 
    3 前台根据 {{ url "alias"}} 去views.py中查看name="alias"的url
    1 'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 设置templates的路径为Django以前版本
    2 # 'DIRS': [],      # 注释掉该行,此为Django 2.0.1最新版本
    3 # 'django.middleware.csrf.CsrfViewMiddleware',
    4          ...省略默认配置
    5 STATIC_URL = '/static/'
    6 TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)  # 原配置
    7 # 静态资源文件
    8 STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),)   # 现添加的配置,这里是元组,注意逗号

    templates/aliax.html:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head> <meta charset="UTF-8"></head>
     4 <body>
     5 {#<form action="/func_alias/"  method="post">#} {# 这个是最开始的路径,正常路径 #}
     6 {#<form action="{% url aliax %}" method="post">    {# 报错,NoReverseMatch at /func_alias/ #}
     7 <form action="{% url 'alias' %}" method="post">   {# 注意,action外部没有引号,大括号里面url 引号XXX #}
     8     <input type="text" name="user">      {#    注意,这里只能用name,不能用id哈  #}
     9     <input type="password" name="pass">  {#    注意,这里只能用name,不能用id哈  #}
    10     <input type="submit" value="submit">
    11 </form>
    12 </body>
    13 </html>

    mysite2/urls.py

    from django.contrib import admin
    from django.urls import path
    from blog import views
    from django.conf.urls import url
    urlpatterns = [
         # URL第四个参数别名操作,name="XXXX",name里面的值代表的是我们的URL路径
        url(r'^func_alias', views.func_alias, name="alias"), # 将路径名跟函数进行映射
    ]

    views.py

     1 from django.shortcuts import render, HttpResponse
     2 import datetime 
     3 # URL之别名操作
     4 def func_alias(request):
     5     if request.method == "POST":
     6         username = request.POST.get("user")
     7         password = request.POST.get("pass")
     8         if username == "hhh" and password == "123":
     9             print("username: %s  password: %s" % (username, password))
    10             return HttpResponse("登录成功".encode("utf8"))
    11     return render(request, "alias.html")
     1 1、url的语法
     2 url(regex,views,kwargs,name)
     3 name:为了给当前的url或地址起别名,反向解析时用。
     4 反向解析:通过name的值来匹配出对应的regex(地址)
     5 url(regex,views,kwargs=None,name='别名')
     6 
     7 2、在模板中通过别名找地址
     8 {% url '别名' %}
     9 
    10 带参数的别名
    11 {% url '别名' 参数1 参数2 ... %}(中间是空格)
    12 
    13 eg:
    14 url(r'^test_server/(d+)/(w+)$',test_server_views,name="test_server"),
    15 <p><a href='{% url "test_server" 5 "jing" %}'>点我</a></p>
    16 def test_server_views(request,name,age):
    17 
    18  
    19 
    20 eg: 
    21 url(r'^test_server/$',test_server_views,
    22 <p><a href="/test_server/?name=jing&age=18">点我</a></p>
    23 def test_server_views(request,name,age):
    24 # print(request.GET["age"])
  • 相关阅读:
    mdx 根据维度Hierarchy节点的名字来filter节点,搜索节点
    学习C++.Primer.Plus 8 函数探幽
    学习C++.Primer.Plus 7 函数
    学习C++.Primer.Plus 6 分支语句和逻辑操作符
    学习C++.Primer.Plus 5 循环和关系表达式
    学习C++.Primer.Plus 4 复合类型
    NYoj_171聪明的kk
    NYoj_104最大和
    希尔排序
    NYoj_49开心的小明
  • 原文地址:https://www.cnblogs.com/lmh001/p/9585535.html
Copyright © 2011-2022 走看看