百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python知识点之PythonWeb开发(python进行web开发)

off999 2024-11-08 12:53 18 浏览 0 评论

1.什么是Flask?有什么优点?

Flask是一个Web框架,就是提供一个工具,库和技术来允许你构建一个Web应用程序。这个Web应用程序可以是一些Web页面,博客,wiki,基于Web的日里应用或商业网站。

Flask属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖外部库的框架。其优点如下:

框架很轻量

更新时依赖小

专注于安全方面的bug

2.Django和Flask有什么区别?

Flask

轻量级web框架,默认依赖两个外部库:jinja2和Werkzeug WSGI工具

适用于做小型网站以及web服务的API,开发大型网站无压力,但架构需要自己设计

与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django

Django

重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。

自带ORM(Object-Relational Mapping 对象关系映射)和模板引擎,支持jinja等非官方模板引擎。

自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库

自带数据库管理app

成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。

python web框架的先驱,第三方库丰富

3.Flask-WTF是什么,有什么特点?

Flask-wtf是一个用于表单处理、校验并提供CSRF验证的功能的扩展库

Flask-wtf能把正表单免受CSRF<跨站请求伪造>的攻击

4.Flask脚本的常用方式是什么?

在shell中运行脚本文件

在python编译器中run

5.如何在Flask中访问会话?

会话(seesion)会话数据存储在服务器上。 会话是客户端登录到服务器并注销的时间间隔。

需要在此会话中进行的数据存储在服务器上的临时目录中。

from flask import session导入会话对象

session['name'] = 'admin'给会话添加变量

session.pop('username', None)删除会话的变量

6.解释Python Flask中的数据库连接?

python中的数据库连接有2种方式

1)在脚本中以用第三方库正常连接,用sql语句正常操作数据库,如mysql关系型数据库的pymsql库

2)用ORM来进行数据库连接,flask中典型的flask_sqlalchemy,已面向对象的方式进行数据库的连接与操作

7.Flask框架有哪些依赖组件?

Route(路由)

templates(模板)

Models(orm模型)

blueprint(蓝图)

Jinja2模板引擎

8.Flask蓝图的作用?

蓝图Blueprint实现模块化的应用

book_bp = Blueprint('book', name)创建蓝图对象

蓝图中使用路由@book_bp.route('url')

在另一.py文件里导入和注册蓝图from book import book_bp app.register_blueprint(book_bp)

作用

将不同的功能模块化

构建大型应用

优化项目结构

增强可读性,易于维护(跟Django的view功能相似)

9.列举使用过的Flask第三方组件?

flask_bootstrap

flask-WTF

flask_sqlalchemy

10. 简述Flask上下文管理流程?

每次有请求过来的时候,flask 会先创建当前线程或者进程需要处理的两个重要上下文对象,把它们保存到隔离的栈里面,这样视图函数进行处理的时候就能直接从栈上获取这些信息。

11.Flask框架默认session处理机制?

Flask的默认session利用了Werkzeug的SecureCookie,把信息做序列化(pickle)后编码(base64),放到cookie里了。

过期时间是通过cookie的过期时间实现的。

为了防止cookie内容被篡改,session会自动打上一个叫session的hash串,这个串是经过session内容、SECRET_KEY计算出来的,看得出,这种设计虽然不能保证session里的内容不泄露,但至少防止了不被篡改。

12.django请求的生命周期?

1.wsgi,请求封装后交给web框架

2.中间件,对请求进行校验或者在请求对象中添加其他相关数据,

3.路由匹配,根据浏览器发送的不同url去匹配不同的视图函数

4.视图函数,在视图函数中进行业务逻辑的处理

5.中间件,对响应的数据进行处理

6.wsgi,将响应的内容发送给浏览器

13.列举django中间件的5个方法?以及django中间件的应用场景?

1.process_request

接收到客户端信息后立即执行,视图函数之前

2.process_response

返回到客户端信息前最后执行,视图函数之后

3.process_view

拿到视图函数的名称,参数,执行process_view()方法

4.process_exception

视图函数出错时执行

5.process_template_response

在视图函数执行完后立即执行,前提是视图返回的对象中有一个render()方法

14.django restframework框架中都有那些组件?

1.序列化组件:serializers 对queryset序列化以及对请求数据格式校验

2.路由组件routers 进行路由分发

3.视图组件ModelViewSet 帮助开发者提供了一些类,并在类中提供了多个方法

4.认证组件 写一个类并注册到认证类(authentication_classes),在类的的authticate方法中编写认证逻

5.权限组件 写一个类并注册到权限类(permission_classes),在类的的has_permission方法中编写认证逻辑。

6.频率限制 写一个类并注册到频率类(throttle_classes),在类的的allow_request/wait 方法中编写认证逻辑

7.解析器 选择对数据解析的类,在解析器类中注册(parser_classes)

8.渲染器 定义数据如何渲染到到页面上,在渲染器类中注册(renderer_classes)

9.分页 对获取到的数据进行分页处理, pagination_class

10.版本 版本控制用来在不同的客户端使用不同的行为

在url中设置version参数,用户请求时候传入参数。在request.version中获取版本,根据版本不同 做不同处理

15.django restframework如何实现的用户访问频率控制?

from rest_framework.throttling import SimpleRateThrottle

这里使用的节流类是继承了SimplePateThrottle类,而这个类利用了django内置的缓存来存储访问记录。通过全局节流设置,所有的视图类默认是使用UserThrottle类进行节流,如果不想使用默认的类就自定义给throttle_classes属性变量赋值,如:“throttle_classes =[VisitThrottle,]”。

16.django中如何实现单元测试?

django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试。

17.django-debug-toolbar的作用?

用来调试请求的接口

18.什么是wsgi?

WSGI是Python在处理HTTP请求时,规定的一种处理方式。如一个HTTP Request过来了,那么就有一个相应的处理函数来进行处理和返回结果。WSGI就是规定这个处理函数的参数长啥样的,它的返回结果是长啥样的?至于该处理函数的名子和处理逻辑是啥样的,那无所谓。

简单而言,WSGI就是规定了处理函数的输入和输出格式。

19.简述什么是FBV和CBV?

FBV和CBV本质是一样的,基于函数的视图叫做FBV,基于类的视图叫做CBV。

在python中使用CBV的优点:

提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)。

可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性。

20.django中csrf的实现机制

第一步:django第一次响应来自某个客户端的请求时,后端随机产生一个token值,把这个token保存在SESSION状态中;同时,后端把这个token放到cookie中交给前端页面;

第二步:下次前端需要发起请求(比如发帖)的时候把这个token值加入到请求数据或者头信息中,一起传给后端;Cookies:{csrftoken:xxxxx}

第三步:后端校验前端请求带过来的token和SESSION里的token是否一致。

21.Django本身提供了runserver,为什么不能用来部署?(runserver与uWSGI的区别)

1)runserver方法是调试 Django 时经常用到的运行方式,它使用Django自带的WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。

2)uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http 等协议。注意uwsgi是一种通信协议,而uWSGI是实现uwsgi协议和WSGI协议的 Web 服务器。uWSGI具有超快的性能、低内存占用和多app管理等优点,并且搭配着Nginx就是一个生产环境了,能够将用户访问请求与应用 app 隔离开,实现真正的部署 。相比来讲,支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能。

22.Django如何实现websocket?

django实现websocket官方推荐大家使用channels。channels通过升级http协议来升级到websocket协议。保证实时通讯。也就是说,我们完全可以用channels实现我们的即时通讯。而不是使用长轮询和计时器方式来保证伪实时通讯。他通过改造django框架,使django既支持http协议又支持websocket协议。

相关推荐

cad2014序列号和密钥永久(autocad2014序列号和密钥)

1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...

qq修改密保手机号(qq修改密保手机号是什么意思)

QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...

dell笔记本客服电话(dell笔记本客服电话人工服务)

戴尔中国的官方网站http://www.dell.com/zh-cn。通过这个网站购买的都没有问题;有问题也可以进入官网联系售后客服,也可以拔打dell电脑说明书上的售后热线,都可以为你解决的。还是建...

联想乐商店app官方下载(联想乐商店在哪下载)

您好!很遗憾!若是您的手机联想乐商店和联想游戏中心只能有流量,建议您核实是否乐安全有限制wifi上网,核实您所使用的wifi是否本身有限制。若还是无效,可清除缓存数据;备份资料恢复出厂设置尝试。欢迎您...

fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
不用拉网线的路由器是真的吗

是真的不插卡不拉线有线就有网,这11个字其实就涵盖了无线路由器的特点,无线路由器免插卡、不用拉网线,完全摆脱了之前家用路由器和网线捆绑的模式,有电就有网,其实说的就是无线路由器的使用操作简单,通电就可...

微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
u盘检测软件下载(u盘测试软件)

1、u盘芯片检测工具(ChipEasy)可以查看USB设备PID、VID、SN、制造商、产品名等;2、查看USB设备主控芯片信息、闪存芯片信息、固件信息、电流控制3、SSD型号...

电脑现在什么系统最好(电脑现在用什么系统好)

WINXP好用,但过时了。VISTA不好用,没推开就夭折了。WIN8/8.1是针对触模屏设计的,如果你用的不是触摸屏平板电脑是普通电脑,使WIN8/8.1总觉着很蹩扭。新出的WIN10,功能...

账号怎么注册(steam账号怎么注册)

如果注册是qq账号【qq号码的申请办法】【1】双击qq登陆界面,在qq帐号填写空格的后面你可以看见:[申请帐号];【2】点击[申请帐号]进入,就可以在网上免费申请号码了;【3】进入www.qq.com...

tmp文件是什么意思(tmp文件有什么用)

在系统C:\Windows\Temp文件夹中,我们经常会发现一些后缀名为TMP的文件,在该文件夹中的这些文件其实都是临时文件。它们可能是系统被误关机,或者其他程序没有删除而生的。而且在该文件夹中还有其...

怎么给u盘格式化(怎么给u盘格式化成FAT32)

u盘插入电脑,等待桌面弹出u盘图标。打开“计算机”。左键选中u盘,单击右键,在弹出的菜单中,点击“格式化”。点击“开始”,点击“确定”即可。格式化u盘详细步骤1、找到U盘盘符,鼠标右键点击,弹出菜单中...

harmonyos主题下载(harmonyos主题怎么换)

首先,打开荣耀手机的应用市场,在搜索框中输入“华为鸿蒙主题”,然后点击搜索。找到“华为鸿蒙主题”应用后,点击下载即可。下载完成后,打开“华为鸿蒙主题”应用,选择心仪的主题,点击下载并应用即可享受华为鸿...

戴尔笔记本电脑黑屏却开着机

对于电脑黑屏的处理基本上采用排除、替换相结合的方法,其原则应本着先替换排除可疑性最大的部件。对于普通电脑用户来讲,专业知识不足,可以按下列步骤分析故障原因,以便可以自己动手排除故障。首先检查接触是否良...

手机版电脑桌面下载(手机电脑桌面下载软件安装包)

只有电脑版手机助手软件,没有手机桌面这个软件在电脑上点击今日头条APP下载安装即可哦你好,陌陌电脑版如果说你想要下载到电脑桌面的话,你只需要长按把它添加到你的电脑桌面就可以了。要将软件下载到桌面并创建...

取消回复欢迎 发表评论: