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})
    
  • 相关阅读:
    ntp时钟同步
    io,进程监控
    Linux下修改主机名
    DataGuard主库增加联机日志
    external table
    linux卸载HBA卡驱动
    Oracle DataGuard延迟应用归档归档日志
    index unusable
    VBOX 克隆虚拟机
    device eth0 has different MAC address than expected,igoring
  • 原文地址:https://www.cnblogs.com/surpass123/p/12984892.html
Copyright © 2011-2022 走看看