PythonWEB框架之Flask

简介: PythonWEB框架之Flask

Python主流WEB框架对比

Django:1个重武器,包含了web开发中常用的功能、组件的框架;(ORM、Session、Form、Admin、分页、中间件、信号、缓存、ContenType....);

Tornado:2大特性就是异步非阻塞、原生支持WebSocket协议;

Flask:封装功能不及Django完善,性能不及Tornado,但是Flask可扩展性强,因为flask的第三方开源组件丰富;

Bottle:比较简单;

结论

都不是我写的!!!不论优劣,不同的工具而已;

小型web应用设计的功能点不多使用Flask;

大型web应用设计的功能点比较多使用的组件也会比较多,使用Django(自带功能多不用去找插件);

如果追求性能可以考虑Tornado;

WSGI介绍

Django使用wsgiref模块Flask使用Werkzeug模块实现了WSGI协议。

HTTP协议是建立在TCP协议之上的,实现UWSGI协议本质是实现Socket服务端,也就是TCP层实现HTTP请求的接收、 对请求内容进行预处理如分割HTPP请求内容的Header和body,然后再触发后面的Django/Flask框架。

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架

pip3 install flask #安装flask
Flask框架是基于werkzeug模块实现的。

复制代码
from werkzeug.wrappers import Request,Response
from werkzeug.serving import run_simple
@Request.application
def hello(request):
return Response("Hello World")

if name == 'main':

#请求一旦到来,执行第3个参数,hello(上下文)
run_simple('localhost', 4000, hello)

复制代码

Flask简单使用

复制代码
from flask import Flask

app=Flask(name) #创建1个Flask实例

@app.route('/') #路由系统生成 视图对应url,1. decorator=app.route() 2. decorator(first_flask)
def first_flask(): #视图函数
return 'Hello World' #response
//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQwMDAyOA==.html

if name == 'main':
app.run() #启动socket
复制代码

一、配置文件

app=Flask(name,template_folder='templates',static_url_path='/static/',static_path='/zhanggen')
模板路径: template_folder='templates'

静态文件路径:static_url_path='/static/'

静态文件引入别名:static_path='/zhanggen'

设置为调试环境:app.debug=True (代码修改自动更新)

设置json编码格式 如果为False 就不使用ascii编码:app.config['JSON_AS_ASCII']=False

设置响应头信息Content-Type app.config['JSONIFY_MIMETYPE'] ="application/json;charset=utf-8" (注意 ;charset=utf-8)

二、路由系统

1.动态路由(url传参)

@app.route('/user/')

复制代码
from flask import Flask

app=Flask(name)

@app.route('/') #设置url传参数 http://127.0.0.1:5000/zhanggen
def first_flask(name): #视图必须有对应接收参数
print(name)
return 'Hello World' #response

if name == 'main':
app.run()
复制代码
@app.route('/post/')
//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDM5NTUwMA==.html

复制代码

接收整型数字参数

app=Flask(name)
@app.route('//') #设置url传参数 http://127.0.0.1:5000/18/
def first_flask(age): #视图必须有对应接收参数
print(age)
return 'Hello World' #response

if name == 'main':
app.run()
复制代码
@app.route('/post/')

复制代码

接收浮点型型数字参数

app=Flask(name)
@app.route('//') #设置url传参数http://127.0.0.1:5000/2345555.8889/
def first_flask(salary): #视图必须有对应接收参数
print(salary)
return 'Hello World' #response

if name == 'main':
app.run()
复制代码
@app.route('/post/')

复制代码

接收URL链接类型参数

app=Flask(name)
@app.route('//') #设置url传参数:http://127.0.0.1:5000/http://www.baiu.com/
def first_flask(url): #视图必须有对应接收参数
print(url)
return 'Hello World' #response

if name == 'main':
app.run()

相关文章
|
18天前
|
安全 数据安全/隐私保护 开发者
Flask框架的安全性如何?
安全是一个持续的过程,需要不断地关注和更新。随着新的安全威胁的出现和技术的发展,开发者需要及时了解并采取相应的措施来应对,以确保 Flask 应用始终处于安全的状态。
|
13天前
|
SQL 监控 安全
Flask 框架防止 SQL 注入攻击的方法
通过综合运用以上多种措施,Flask 框架可以有效地降低 SQL 注入攻击的风险,保障应用的安全稳定运行。同时,持续的安全评估和改进也是确保应用长期安全的重要环节。
123 71
|
13天前
|
安全 网络安全 数据安全/隐私保护
Flask框架的安全机制与其他框架相比有哪些优势和劣势?
总的来说,Flask 的安全机制在灵活性和可扩展性方面有其独特优势,但也需要开发者在安全方面投入更多的精力和努力,以确保应用的安全可靠运行。
33 11
|
11天前
|
SQL 安全 Java
除了Flask框架,还有哪些框架能防止SQL注入攻击?
这些框架都在安全方面有着较好的表现,通过它们的内置机制和安全特性,可以有效地降低 SQL 注入攻击的风险。然而,无论使用哪个框架,开发者都需要具备良好的安全意识,正确配置和使用框架提供的安全功能,以确保应用的安全可靠。同时,持续关注安全更新和漏洞修复也是非常重要的。
30 7
|
18天前
|
搜索推荐 API 开发者
Django框架和Flask框架的适用场景分别是什么?
总体而言,Django 更适合需要全面功能和大规模开发的场景,而 Flask 则更适合灵活性要求高、小型项目或特定需求的开发。当然,具体的选择还应根据项目的具体情况、团队的技术能力和偏好等因素来综合考虑。在实际应用中,开发者可以根据项目的特点和需求,灵活选择使用这两个框架,或者结合它们的优势来构建更强大的 Web 应用程序。
|
20天前
|
开发者 数据库管理 Python
Django框架和Flask框架的区别
总体而言,Django 适合需要快速搭建大型应用的开发者,而 Flask 则更适合有特定需求和追求灵活性的开发者。
|
2月前
|
Python
Flask学习笔记(二):基于Flask框架上传图片到服务器端并原名保存
关于如何使用Flask框架上传图片到服务器端并以其原名保存的教程。
83 1
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
32 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
2月前
|
JSON 测试技术 数据库
Python的Flask框架
【10月更文挑战第4天】Python的Flask框架
|
2月前
|
存储 安全 数据库
Flask框架中,如何实现用户身份验证和会话管理?
【10月更文挑战第4天】Flask框架中,如何实现用户身份验证和会话管理?