• Django的序列化&正则限定urls匹配


    一般数据在传输的过程中都会对其进行序列化操作:

    1>手动json 

    1 import json
    2     data = {'name': 'kevin', 'age': 18}
    3     data2 = [11, 22, 33, 44]
    4     d=json.dumps(data)
    5     return HttpResponse(d)

    2>直接调用Django里面自带的JsonResponse

    1 from django.http import JsonResponse
    2     data={'name':'kevin','age':18}
    3     data2=[11,22,33,44]
    4     return JsonResponse(data,safe=False)

    需要注意的问题是:Django里面的json规范化的格式是字典,传入其他类型数据会报错,如果要传入,把安全性检测safe取消

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    通过正则来限定匹配对应关系:

    1 url(r'^student_del/([0-9]+)/$', views.student_del),

    views的函数需要有一个参数来接收传过来的参数:

    1 def student_del(request,s_id):
    2     print(request)
    3     print(s_id)
    4     models.Student.objects.all().get(sid=s_id).delete()
    5     return redirect('/student_list/')

    同样的HTML页面则必须与之对应:

     1 {% for foo in student %}
     2            <tr>
     3               <td>{{ foo.sid }}</td>
     4               <td>{{ foo.sname }}</td>
     5               <td>{{ foo.grade.gname }}</td>
     6               <td><a href="/student_del/{{ foo.sid }}/" class="btn btn-danger"><i class="fa fa-trash-o "></i>&nbsp;删除</a>
     7                   <a href="/student_edi/?id={{ foo.sid }}" class="btn btn-success"><i class="fa fa-pencil "></i>&nbsp;编辑</a>
     8               </td>
     9            </tr>
    10        {% endfor %}

     若是使用正则分组匹配,则需要按分组关键字取值:

    对应关系:

    1 url(r'about/(?P<year>[0-9]{2,4})/(?P<name>[a-zA-Z]+)/$',views.about),

    具体的取值方法:

    1 def about(request,year,name):
    2    print(year,name)
    3    return render(request,'test1.html')

    那么此时如果在地址栏输入类似的地址:http://127.0.0.1:8000/about/2018/kevin/

    则 year=2018 ,name=kevin

     如果希望不带参数默认访问的是第一页,传参数按参数值访问,那么可以按下面操作:

    1 url(r'update/$',views.page),
    2 url(r'update/page/(?P<num>[0-9]+)/$',views.page),

    函数:

    1 def page(request,num='1'):
    2     pass
  • 相关阅读:
    NGINX原理分析 之 SLAB分配机制
    graphviz
    使用git Rebase让历史变得清晰
    An Implementation of Double-Array Trie
    转录组差异表达分析小实战(一)
    简单使用limma做差异分析
    简单使用DESeq2/EdgeR做差异分析
    简单使用DESeq做差异分析
    HISAT,sTRINGTIE,ballgown三款RNA-seq信息分析软件
    转录组的组装Stingtie和Cufflinks
  • 原文地址:https://www.cnblogs.com/wen-kang/p/9573172.html
Copyright © 2020-2023  润新知