计算机基础知识52

news2024/11/17 19:45:55

三板斧的使用

HttpResponse: 字符串
render: 渲染html页面
redirect: 重定向的

# 在视图文件中写视图函数的时候不能没有返回值了,默认返回的是None,页面上就会报错

def render(request, template_name, context=None, content_type=None, status=None, using=None):
    content = loader.render_to_string(template_name, context, request, using=using)
    return HttpResponse(content, content_type, status)

JsonReponse序列化类的使用

# json有什么用:跨语言传输       

        序列化: json.dumps      反序列化: json.loads

#  向前端返回一个json格式字符串的两种方式

方式一:

import json
 
def my_view(request):
    data=['egon','kevin']
    return HttpResponse(json.dumps(data) )

方式二:

from django.http import JsonResponse
 
def my_view(request):
    data=['egon','kevin']
    return JsonResponse(data,safe=False)
    #默认safe=True代表只能序列化字典对象,safe=False代表可以序列化字典以外的对象

form表单上传文件

<form action="" method="post">

表单上传数据需要满足的条件:

        1. 请求方式必须是post

        2. enctype="multipart/form-data"

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="myfile">
    <input type="submit">
</form>
</body>
</html>

3、request对象方法:

                request.method

                request.POST.get()

                request.POST.getlist()

                request.GET.get()

                request.GET.getlist()

                request.FILES

                request.path

                request.path_info    # 不能接收参数,接收的是后缀

                request.get_full_path()     # 也能够接收参数

print(request.POST) # 接收的都是普通的数据,非文件数据
print(request.FILES) # 只接受文件数据,普通数据还在request.POST里面
def index(request):
    # user_dict = {'username':'kevin你好'}
    user_dict = [1, 2, 3, 4]
    print(request.POST)
    # <MultiValueDict: {'myfile': [<InMemoryUploadedFile: 234.png (image/png)>]}>
    file_obj=request.FILES.get('myfile')
    # print(request.body) # 接收纯原生的二进制数据,没有任何的处理 b''----> str---->decode---->dict...
    # print(request.POST.get('')) # 之所以你能够直接按照字典的方式取值,是因为django给做了封装
    print(request.path)  # /index/  /index/
    print(request.path_info) # /index/   /index/
    print(request.get_full_path()) # /index/  /index/?a=1&b=2
    print(request.GET.get(''))
    return render(request,'index.html')

CBV的写法

# 视图是可调用的,用来处理请求(request)并且返回响应(response),django的视图有两种形式:FBV和CBV

# FBV: function based view # 写的都是函数

         FBV中视图函数处理HTTP的GET请求如下:

from django.http import HttpResponse
 
def my_view(request):
    if request.method == 'GET':
        # <view logic>
        return HttpResponse('GET result')
    elif request.method == 'POST':
        # <view logic>
        return HttpResponse('POST result')

CBV: class based view # 写的都是类

        CBV的实现如下:

from django.http import HttpResponse
from django.views import View
 
class Login(View):
    def get(self, request):
        # <view logic>
        return HttpResponse('GET result')
 
    def post(self, request):
        # <view logic>
        return HttpResponse('POST result')

CBV的源码分析

# 入口
url(r'^login/', views.MyLogin.as_view()),

# View类中得as_view方法的返回值是view函数名
# 当请求来的时候,会触发view函数的执行
def view(request, *args, **kwargs):
    # cls:Mylogin()------>self对象
    self = cls(**initkwargs)
    return self.dispatch(request, *args, **kwargs)  # View类里的dispatch

def dispatch(self, request, *args, **kwargs):
    if request.method.lower() in self.http_method_names:
        handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
    else:
        handler = self.http_method_not_allowed
    return handler(request, *args, **kwargs)

from django.views import View


class MyLogin(View):
    http_method_names = ['get', 'post']
    def get(self, request):
        print('get。。。')
        self.index()
        return HttpResponse("get")

    def post(self, request):
        return HttpResponse("hello postman!!!")

    def index(self):
        pass

权限、频率、jwt的源码

模板层之模板变量

# PHP:不是后端语言,前端 操作数据量,写逻辑,都可以

        在html页面中写一个python的代码
# 在模板中取值的时候,使用的是点语法(.)

# 在模板中得函数调用的时候不要加括号,自动加括号,只需写函数名

{{ 写变量 }}
{% 写逻辑 %}

{{ d.0 }}
{{ d.1 }}
{{ d.3 }}
{{ user_dict.hobby.2 }}
{{ index }}
{{ obj.score }}

今日思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1211226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经典文献阅读之--BVMatch(基于鸟瞰图像的点云地点识别方法

0. 简介 由于点云的不规则数据形式以及散点的稀疏性&#xff0c;当前的方法难以从点云中提取高判别性的特征&#xff0c;在大规模环境中使用激光雷达进行全局定位仍是一个难以解决的问题。《BVMatch: Lidar-Based Place Recognition Using Bird’s-Eye View Images》一文中将点…

CSS Form表单布局

效果图 <Tab IsCard"true"><TabItem Text"表单信息-DIV版本"><div class"row"><div class"col"><label for"field1">工程名称:</label><input class"form-control" type&…

江西产业链现代化1269行动计划引领新能源建设与职业教育教学改革的深度融合

江西产业链现代化1269行动计划引领新能源建设与职业教育教学改革的深度融合 在全球能源转型的时代背景下&#xff0c;江西省积极应对挑战&#xff0c;提出了产业链现代化1269行动计划。这一计划不仅着眼于推动新能源建设&#xff0c;还将新能源建设与职业教育教学改革紧密结合…

测试员练就什么本领可以让自己狂揽10个offer

最近&#xff0c;以前的一个小徒弟又双叒叕跳槽了&#xff0c;也记不清他这是第几次跳槽了&#xff0c;不过从他开始做软件测试开始到现在已经有2-3年的工作经验了&#xff0c;从一开始的工资8K到现在的工资17K&#xff0c;不仅经验上积累的很多&#xff0c;财富上也实现了翻倍…

Windows UAC权限详解以及因为权限不对等引发的若干问题分享

目录 1、什么是UAC&#xff1f; 2、微软为什么要设计UAC&#xff1f; 3、标准用户权限与管理员权限 4、程序到底以哪种权限运行&#xff1f;与哪些因素有关&#xff1f; 4.1、给程序设置以管理员权限运行的属性 4.2、当前登录用户的类型 5、案例1 - 无法在企业微信聊天框…

穿越时空的超级英雄

从智能家居到无人驾驶&#xff0c;从虚拟现实到人工智能&#xff0c;云计算无处不在&#xff0c;它让我们的生活更加智能、便捷、有趣&#xff01;在这个奇妙的时代&#xff0c;云计算将成为无所不能的超级英雄&#xff0c;让我们一起穿越时空&#xff0c;探索未来的云计算世界…

JetBrains全家桶_学生免费教程

JetBrains全家桶的费用对于学生来说是一笔不少的费用&#xff0c;但是如果你是学生就可以免费使用 上教程 免费教育许可证 - 社区支持学习或教授如何使用 JetBrains 出品的行业最佳工具编写代码。 JetBrains 工具的免费教育许可证。https://www.jetbrains.com/zh-cn/communit…

婴儿洗衣机哪个牌子比较好?好用的内衣洗衣机推荐

宝宝衣服的清洗对父母来说都很重要&#xff0c;所以挑选一款适合宝宝的小型洗衣机显得尤为重要。也许有许多人认为&#xff0c;为婴儿购买独立的洗衣机是不必要的&#xff0c;但是你是否了解呢&#xff1f;新生婴儿的肌肤要比成人更脆弱&#xff0c;更易受到感染而受到伤害&…

FineReport -问题学习图表设计图表类型-单元格扩展父子格-报表预览

1,问:为什么本地每次预览都要填帐号密码?答:模板认证关闭一下及可 2.单元格扩展与父子格----左父格-扩展方向-箭头往那个方向就往那个方向 1)数据集参数 在定义数据集时,通过使用if函数判断参数的值是否为空,若为空就不过滤参数,若不为空就进行参数过滤。SELECT * FROM…

修改 jar 包中的源码方式

在我们开发的过程中&#xff0c;我们有时候想要修改jar中的代码&#xff0c;方便我们调试或或者作为生产代码打包上线&#xff0c;但是在IDEA中&#xff0c;jar包中的文件都是read-only&#xff08;只读模式&#xff09;。那如何我们才能去修改jar包中的源码呢&#xff1f; 1.…

Edge最新版本,关闭侧边栏,不需命令,更改设置就可

边栏展示 说明&#xff1a;Edge自动更新版本后&#xff08;版本 119.0.2151.58&#xff09;&#xff0c;出现了侧边栏&#xff0c;看着很不舒服&#xff0c;效果如上图 修改&#xff1a; 1、在设置找到侧栏 2、点击Copilot后&#xff0c;展示的页面中会有始终显示边栏这一开…

保护数字前沿:下一代防火墙如何塑造网络安全的未来

下一代防火墙通过提供先进的威胁检测、精细控制和云安全功能&#xff0c;正在重塑网络安全的未来。随着数字环境的不断发展&#xff0c;组织必须采用这些创新解决方案来保护其数字资产并维护安全的数字前沿。 在当今互联的世界中&#xff0c;网络威胁变得越来越复杂&#xff0c…

从3大维度9个细节聊一聊,边缘计算盒子如何选型

人工智能的蓬勃发展&#xff0c;物联网设备的部署和5G无线技术的到来&#xff0c;越来越多的新兴场景对智能化应用提出了低时延、低带宽、本地化、高安全、低成本的处理需求&#xff0c;包括智慧城市、智慧金融、智慧校园等领域&#xff0c;以及智慧交通、智慧工厂、智慧医疗等…

学好Python-新手小白如何做?

新手小白如何学好Python?有哪些参考方法吗?这是一个老生常谈的话题了。今天为大家带来两位前辈的分享&#xff0c;他们给出了非常实用的方法和思路&#xff0c;希望对你有所帮助。 1、多练&#xff0c;两个字&#xff1a;多练 如果真的要说方法可以参考如下&#xff1a; ①…

直流有刷电机调速电路,输出端内置14V钳位结构,具有电源电压范围宽、功耗小、抗干扰能力强等功能的国产芯片GS016的描述

GS016是一款直流有刷电机调速电路&#xff0c;输出端内置14V钳位结构&#xff0c;具 有电源电压范围宽、功耗小、抗干扰能力强等特点。通过桥接内部电阻网 络&#xff0c;可以改变PWM占空比输出&#xff0c;达到控制电机转速作用。GS016采用SOP14的封装形式封装。 主要特点&am…

什么是社会工程学攻击?社会工程学攻击案例,如何防范?

什么是社会工程学攻击&#xff1f; 从广义上讲&#xff0c;社会工程学是操纵人们放弃敏感信息的做法。社交工程学攻击可能当面发生&#xff0c;例如盗匪装扮成送货员闯入建筑物。本文将重点关注社会工程学网络攻击。在大多数情况下&#xff0c;此类攻击旨在使受害者泄露登录凭…

【23真题】厉害,这套竟有150分满分!

今天分享的是23年中国海洋大学946的信号与系统试题及解析。 本套试卷难度分析&#xff1a;22年中国海洋大学946考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取!平均分为109-120分&#xff0c;最高分为150分满分&#xff01;本套试题内容难度中等&…

反射之Type类

Type类 Type接口是所有类型的父接口&#xff0c;有四个子接口和一个实现类。 Type实现图 Class类比较常见&#xff0c;表示的是原始类型。表示的Java类在JVM里表现为一个Class对象 ParameterizedType表示的是参数化类型&#xff0c;对应 List<T>、List<String> 等格…

Jetson orin nano配置深度学习环境

Jetson orin nano是一块比较新的板子&#xff0c;装的是Ubuntu20.04系统&#xff0c;与普通x86_64不同&#xff0c;它是ARM64平台&#xff0c;网上的教程不是很多。 一、Jeston Orin Nano介绍 2022年GTC&#xff0c;NVIDIA 宣布Jetson Orin Nano系列系统模块&#xff08;SoM&a…

大数据-之LibrA数据库系统告警处理(ALM-12045 网络读包丢包率超过阈值)

告警解释 系统每30秒周期性检测网络读包丢包率&#xff0c;并把实际丢包率和阈值&#xff08;系统默认阈值0.5%&#xff09;进行比较&#xff0c;当检测到网络读包丢包率连续多次&#xff08;默认值为5&#xff09;超过阈值时产生该告警。 用户可通过“系统设置 > 阈值配置…