Python攻城师的成长————Django框架(视图层)

今日学习目标

  • 学习Django框架(视图层)


学习内容

  • 虚拟环境
  • django路由层版本区别
  • 视图函数的返回值
  • 接收文件数据
  • FBV与CBV(基于函数的视图、基于类的视图)
  • 模板语法传值

一、虚拟环境

不同的项目应该有各自独立的解释器环境,最大化节省资源,实际功能中针对不同项目只会安装该项目所用到的模块,用不到的一概不装。

诸多项目在你的机器上如何无障碍的打开并运行

  • 方式1:把所有需要用到的模块全部下载下来 如果有相同模块不同版本每次都重新下载替换
  • 方式2:提前准备好多个解释器环境 针对不同的项目切换即可

创建虚拟环境

相当于在下载一个全新的解释器

在这里插入图片描述

识别虚拟环境

文件目录中有一个venv文件夹

如何切换环境

选择不用的解释器即可 全文不要再次勾选new enviroment...

注意
每创建一个虚拟环境,就类似于重新下载了一个纯净的python解释器
虚拟环境不要创建太多个,会占用内存。

二、django路由层版本区别

django1.X和django2.X及以上

  • urls.py中1.x用的是url,而2.x用的是path
    ​ 并且2.x中的path第一个不支持正则表达式,写什么就匹配什么
    ​ 如果你觉得不好用,2.x里面还有re_path 这个re_path就是你1.x里面的url

    from django.urls import path,re_path
    
  • path方法提供了转换器功能

    path('index/<int:id>/', index)
    

    匹配对应位置的数据并且自动转换类型
    ‘’‘有五种转换器可供选择’‘’
    参考:https://blog.csdn.net/weixin_49111957/article/details/109754240

三、视图函数的返回值

当浏览器向服务器发起数据请求的时候,那么服务器用来响应的视图函数的返回值的种类有两种,分别是HTML响应(HttpResponse、render、redirect)和JsonResponse(前后端分离)

HTML响应

  • (1)HttpResponse
    不使用模板,直接HttpResponse()
    例子:创建视图函数
def testResponse(request):
    response = HttpResponse()
    response.content ='英雄联盟'
    response.status_code = 404
    # 直接写出文本
    response.write('亚索')
    # 一次性读取剩余字节,冲刷缓存区
    response.flush()
    return response

结果
在这里插入图片描述

  • (2)render
    render方法的返回值类型也是一个HttpResponse
    例子:对render进行剪切一下,方便查看类型
def testRender(request):
    response = render(request,'testRender.html')
    print(type(response))
    return response

结果
在这里插入图片描述

  • (3)Redirect
    重定向
    其是HttpResponse的子类,响应重定向:可以实现服务器内部跳转
def testRedirect(request):
    # 重定向就是执行其他的视图函数
    return HttpResponseRedirect('/res/index/')

结果
在这里插入图片描述

2.JsonResponse

django的视图函数,是不可以直接返回data的
JsonResponse 缺点:1.中文乱码  2.序列化

解决中文乱码方案:

def testJson(request):
    data = {
   
        'msg': 'ok',
        'status': 200,
        'name': '张三',
    }
    # 忽略编码
    return JsonResponse(data=data,json_dumps_params={
   'ensure_ascii':False})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值