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"])
  • 相关阅读:
    298. Binary Tree Longest Consecutive Sequence
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    163. Missing Ranges
    336. Palindrome Pairs
    727. Minimum Window Subsequence
    211. Add and Search Word
    年底购物狂欢,移动支付安全不容忽视
    成为程序员前需要做的10件事
    全球首推iOS应用防破解技术!
  • 原文地址:https://www.cnblogs.com/lmh001/p/9585535.html
Copyright © 2011-2022 走看看