• Django学习手册


    ###############################################

    总结:

    一、url路由配置:

      方式一:(通过url链接get获取)

      方式二:(url路由匹配方式获取-拓展(元组方式,))

      方式三:(url路由匹配方式获取-拓展(字典方式))

    二、表单动态提交方式:

      name属性运用

      request.path_info属性运用

    三、路由分发 

    ###############################################

    一、url路由配置:

    方式一:

    前端:

    <ur>字典循环:(items)
            {% for i,j in dict_info.items %}
                <li>
    {#                方式一:提交nid到url连接里面。#}
                    <a href="/index2/?nid={{ i }}"> {{ i }} --- {{ j.name }}</a>
                </li>
            {% endfor %}
    </ur>

    URL配置:

    后端views配置:

    dict_info = {
        "1":{"name":"root1","phone":"111"},
        "2":{"name":"root2","phone":"222"},
        "3":{"name":"root3","phone":"333"},
        "4":{"name":"root4","phone":"444"},
        "5":{"name":"root5","phone":"555"},
        "6":{"name":"root6","phone":"666"},
        "7":{"name":"root7","phone":"777"},
    }
    
    def index(request):
        return render(request,"index.html",{"dict_info":dict_info})
    
    
    #方式一:(利用url提交过来获取)
    def index2(request):
        nnid = request.GET.get("nid")
        return HttpResponse(nnid)

    测试:

    获取到了nid 的数据了。

    方式二:

    前端:

     <ur>字典循环:(items)
            {% for i,j in dict_info.items %}
                <li>
    {#                方式二:提交的url,通过urls路由匹配到。#}
                    <a href="/index2-{{ i }}"> {{ i }} --- {{ j.name }}</a>
                </li>
            {% endfor %}
     </ur>

    url路由配置:

    urlpatterns = [
        path('admin/', admin.site.urls),
        url('^index/', views.index),
    
        # 方式二的URL路由
        url('^index2-(d)', views.index2),
      # 元组形式
      # url('^index2-(d)-(d)', views.index2),
    ]

    后端:

    # 方式二:(利用url匹配的方式获取)
    def index2(request,nid):
        return HttpResponse(nid)

    #元组形式获取
    # def index2(request,*args):
    # return HttpResponse(args)

    测试:

    方式三:

    前端:(不需要修改)

    <ur>字典循环:(items)
            {% for i,j in dict_info.items %}
                <li>
                    <a href="/index2-{{ i }}"> {{ i }} --- {{ j.name }}</a>
                </li>
            {% endfor %}
        </ur>

    URL配置:

       #方式三的URL路由
        url('^index2-(?P<nid>d)', views.index2),
    #字典形式 # url('^index2-(?P<nid>d)-(?P<uid>d)', views.index2),

    后端:

    def index2(request,**kwargs):
        print(kwargs)
        return HttpResponse(kwargs.values())

    测试:

    二、表单url动态提交方式:

      name属性运用

        前端:

    {#    表单提交方式,可以用django内置方法命名提交,动态匹配url方式#}
        <form action="{% url 'names' %}" method="post">
    {#  <form action="{% url 'names'可在后面添加参数 %}" method="post">#}
            aaaaa
        </form>

        url配置:

    # 表单提交,动态匹配url方式,name 属性
        url('^1234', views.index2,name="names"),

        测试:

        

      

      request.path_info属性运用

    {#
    request.path_info表单提交方式,完全动态匹配当前url方式#} 
    <form action="{{ request.path_info }}" method="get"> 不不 </form>

     

    三、路由分发:

     有两天业务线,app01,app02,在urls 内导入 include ,引入路由分发代码

     在app02 目录下新建一个urls 文件

     

     配置

     在app02视图内配置

     

    测试:

  • 相关阅读:
    双反斜杠引发的正则表达式错误
    表单验证的前端验证后端验证
    html中的select下拉框
    hibernate需要注意的点
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
  • 原文地址:https://www.cnblogs.com/Anec/p/9555117.html
Copyright © 2020-2023  润新知