浅谈Python flask框架
作者:盆友圈的小可爱 发布时间:2021-04-07 00:45:43
前言:
Python
面向对象的高级编程语言,以其语法简单、免费开源、免编译扩展性高,同时也可以嵌入到C/C++程序和丰富的第三方库,Python运用到大数据分析、人工智能、web后端等应用场景上。
Python 目前主要流行的web框架:flask
、Django
、Tornado
那么框架与库的区别?
框架(framework
)跟库的功能类似,但是框架在某一领域上功能更加全面。使用框架,会减少开发者重复造轮子,直接调用其类或者函数就可以实现需求的功能。
那么,我们本期来学习Python提供的 web 框架之一-flask框架相关方法的学习,Let's go~
1. flask 框架概述
flask
框架是一款基于 WSGI 的轻量级的web框架。flask
犹如耳熟能详的“麻雀虽小,五脏俱全”,因此flask具有简单可拓展的特点。
1.1flask 框架优势
基于WSGI应用程序,必须使用显式实例化
使用
Werkzeug
路由系统进行自动排序路由使用
Jinja2
模板引擎,快速方便使用模板使用线程局部变量,实现快速访问
weby
应用程序支持异步等待和
ASCI
(async-first)衔接单元测试,开发人员快速进行测试检查
自带开发服务器,无需借助其他第三方网络服务
1.2flask 框架获取
使用pip进行下载flask
pip install flask
flask 包下载之后,会自动下载依赖库
Werkzeug 库:实现WSGI,前端与服务端的Python接口
Jinjia 库:模板语言,显示web页面
MarkupSafe 库:附带Jinjia,用于转义渲染模板不受信任的输入
itsDangerous:保护flask会话的cookie
Click库:用于编写命令行框架
flask 可选的依赖库,按实际需要进行下
Blinker 库:提供对Singals的支持
Python-dotenv 库:运行命令时启动
dotenv
的环境变量来支持flaskWatchdog 为flask服务器提供快速的加载器
1.3flask 框架使用
在代码中,使用from...import 导入flask包
from flask import flask
长按 Ctrl,我们可以查看Flask源代码介绍
2. flask demo步骤
在flask web 框架中,我们来看看要搭建一个DEMO的网站需要做哪些步骤:
初始化:导入Flask库,定义Flask实例化对象
Flask实例化时,需要传入
__name__
:目的是接收包或者模块的名字作为参数让
flask.helpers.get_root_path
以便获得静态文件和模板文件的目录
from flask import Flask
APP = Flask(__name__)
定义一个应用方法,并且route装饰器装饰
调用
route()
方法装饰创建的应用方法:目的是告诉flask怎么访问该函数
@APP.route("/")
def hello():
return ("<h1>welcome juejin</h1>")
在main中,flask实例化对象调用run()方法,进行运行
如果在调试阶段,我们需要设置
debug=True
if __name__ == "__main__":
APP.run(debug=True)
后台运行日志链接
我们访问日志中生成的链,可以在网页上看到解析的文字
3. flask 基础功能
flask
上述实现的简易web程序,主要使用到啦flask模块路由功能
3.1路由功能
route()是装饰器,将URL和函数绑定
rule
:绑定访问该函数的url规则option
:要转发给Rule对象的参数列表
@app.route(url,optiion)
run()
是服务器上运行应用程序host
:监听的主机名port
:主机端口号debug
:提供调试信息options
:要转发给底层Werkzeug
服务器
3.2模版提供
flask
框架是基于Jinja2
模板引擎实现的
在项目中创建一个子目录
templates
,然后在其目录下创建demo.html
在flask文件中,应用方法中需要调用
render_template('demo.html', name=name)
4、总结
本期,我们对flask
微web
框架优势特点、demo web应用程序程序步骤以及对flask模块中路由和模版两个功能进行基本了解。
来源:https://juejin.cn/post/7025997161649143822


猜你喜欢
- 虽然以前我写过IE6、IE7、IE8共存的解决方案,但是看到IETester这个软件以后那些都已经没有意义了(那些办法副作用比较大,而且实现
- 本文实例讲述了PHP实现的线索二叉树及二叉树遍历方法。分享给大家供大家参考,具体如下:<?php require '
- G2笔记G2是蚂蚁金服的一套开源图表插件,因项目需要研究了一下,相比Echarts来说,G2文档比较难懂,网上也没有太多示例,所以在这里记录
- 1. 前言我们已经知道,对于InnoDB存储引擎而言,页是磁盘和内存交互的基本单位。哪怕你要读取一条记录,InnoDB也会将整个索引页加载到
- 系统默认是torch.FloatTensor类型data = torch.Tensor(2,3)是一个2*3的张量,类型为FloatTens
- 以前看过几个JS代码格式的,自己也来写了一个,呵呵,优点是可以处理超长的 JS 而不会死机.........IE Only运行代码框<
- 秉承着一切皆对象的理念,我们再次回头来看函数(function)。函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋
- python如何跳过异常继续执行下面有两种解决方法第一种是类似if…else…;另外一种是使用语
- (一)单一独立的参数如果命令行输入的参数都是各自单一独立的,直接用个循环把所有参数逐一读出来就行了。sys模块里面直接用args = sys
- 个人想到的解决方法有两种,一种是 .replace(' old ',' new ')
- 一个客户提供一个股价的信息,要求放在页面上,显示一些数据,需要从远程获取xml,然后解析写在网页上,开始不会觉得很难,其实蛮简单的,先用ja
- 在分析python的参数传递是如何进行的之前,我们需要先来了解一下,python变量和赋值的基本原理,这样有助于我们更好的理解参数传递。py
- windows下安装Virtualenvwrapper我们可以使用Virtualenvwrapper来方便地管理python虚拟环境,但是在
- 这个小技巧在工作当中是非常实用而且经常用到的 希望小伙伴儿们能学到。先看看效果图吧接下来我们看看怎么实现的吧在methods中写
- js汉字简繁转换源代码:<html> <head> <title>汉字简繁转换工具_asp之家</
- 如果你有两条音频合成为一条音频(叠加,不是拼接)的需求,以下代码可以直接使用,需要修改的地方我已经标出来了,有三处需要修改你的本地音频的地址
- 这里使用FSO对象来删除指定文件夹 代码和说明如下:<% set fs=createobject(&qu
- 回表查询InnoDB索引分为两大类,一类是聚集索引(Clustered Index),一类是非聚集索引(Secondary Index)聚集
- update()方法添加键 - 值对到字典dict2。此函数不返回任何值。语法以下是update()方法的语法:dict.upd
- SQL Server 数据库定时自动备份,供大家参考,具体内容如下在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备