zoukankan      html  css  js  c++  java
  • day63日考

    day63日考

    考题

    今日考题
    1.反向解析的本质是什么,无名和有名反向解析如何操作?
    2..路由分发能够实现的前提是什么,需要注意什么,名称空间什么时候使用
    3..什么是虚拟环境,django1.X与django2.X/3.X的区别有哪些
    4.诠释为何跨语言传输数据以json格式为主,django返回json格式数据方式有哪些,又有哪些注意事项和配置参数
    

    1.反向解析的本质是什么,无名和有名反向解析如何操作?

    反向解析的本质:通过一些方法可以获得一个结果,该结果可以访问到对应的URL,从而触发视图函数的运行。
    无名分组的反向解析:
    views.py
    from django.shortcuts import reverse
    from django.shortcuts import redirect
    
    def home(request):
        return redirect(reverse('app01:index',args(1,)))
    
    index.html
    <form action="{% url 'app01:index' 1 %}" method="post">
        ...
    </form>
    
    有名分组的反向解析
    views.py
    from django.shortcuts import reverse
    from django shortcuts import redirect
    
    def home(request):
        return redirect(reverse('app01:index',kwargs={'id':1}))
    
    index.html
    <form action="{% url 'app01:index' id=1 %}" method="post">
        ...
    </form>
        
    

    2.路由分发能够实现的前提是什么,需要注意什么,名称空间什么时候使用。

    django的每一个应用都可以有自己的templates文件夹 urls.py static文件夹
    
    当分组的别名存在重复的时候,可以使用名称空间加以区别
    
    from django.conf.urls import url, include
    
    url(r'^app01/',include(('app01.urls','app01')))
    url(r'^app02/',include(('app02.urls','app02')))
    

    3.什么是虚拟环境,django1.X与django2.X/3.X的区别有哪些

    """
    在正常开发中,我们会给每一个项目配备一个该项目独有的解释器环境
    该环境内只有该项目用到的模块,用不到一概不装
    """
    
    前端                          后端
    JSON.stringify()             json.dumps()
    JSON.parse()                 json.loads()
    
    (1)路由层使用的方法不同
    django 1.x 使用的url正则匹配路径,django 2.x和django3.x使用的path来匹配路径,同时也提供了re_path来正则匹配路径
    
    path主要是为了解决url匹配路径存在的数据类型转换与匹配规则冗余的问题,它内部支持五种转换器,同时也支持自定义转换器。
    
    path('index/<int:id>/',index)
    
    str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
    int,匹配正整数,包含0。
    slug,匹配字母、数字以及横杠、下划线组成的字符串。
    uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
    path,匹配任何非空字符串,包含了路径分隔符(/)(不能用?)
    

    4.诠释为何跨语言传输数据以json格式为主,django返回json格式数据方式有哪些,又有哪些注意事项和配置参数

    答:因为各个语言的数据类型是不一致,需要一个标准的格式,json格式可以完美地承担前后端数据传输的中转站,实现矿语言的传输。
    
    字典类型的数据
    from django.http import JsonResponse
    
    def index(request):
        user_dic = {'name':'egon','age':'70','hobby':'喝茶'}
        return JsonResponse(user_dic,jsom_dumps_params={'ensure_ascii':False})
    
    JsonResponse是一个继承于HttpResponse的类,内部调用了json.dumps来完成数据类型的序列化,通过json_dumps_params参数来控制显示的中文是否是unicode编码格式
    data = json.dumps(data, cls=encoder, **json_dumps_params)
    
    非字典类型的数据
    In order to allow non-dict objects to be serialized set the '
    'safe parameter to False.'
    
    def test(request):
        user_list = ['姜春','王XX','李XX']
        return JsonResponse(user_list,safe=False,jsom_dumps_params={'ensure_ascii':False})
    
  • 相关阅读:
    Linq聚合操作之Aggregate,Count,Sum,Distinct源码分析
    Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析
    Linq生成操作之DefautIfEmpty,Empty,Range,Repeat源码分析
    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
    PAT 1152 Google Recruitment
    PAT 1092 To Buy or Not to Buy
    PAT 1081 Rational Sum
    PAT 1084 Broken Keyboard
    PAT 1077 Kuchiguse
    PAT 1073 Scientific Notation
  • 原文地址:https://www.cnblogs.com/surpass123/p/12984892.html
Copyright © 2011-2022 走看看