浅谈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
猜你喜欢
- Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试。不过,也可以用来给网页截图。目前,它支持 Java、C#
- 【MySql常用命令】1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:创建一个数
- 如下所示:# -*- coding:utf-8 -*-import xlrdimport sysimport reimport jsondi
- 本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下学生管理系统的开发步骤:1、显示学生管理系统的功能菜
- 开发环境:Ubuntu16.04+Django 1.11.9+Python2.7一:使用自定义函数输出日志到log文件:import tim
- 年初的时候收藏过一篇关于mysqlreport的报表解读,和内置的show status,和show variables相比mysqlrep
- Francesc (@francesc) 是 Go 核心团队的一员, 是提倡 Google Cloud 平台的开发者. 他是一个编程语言的爱
- 近期公司准备开发一个计费项目,数据库当然还是选用我最信赖的Oracle了。由于一部分基础数据在一台Win2000 Server的S
- 如果没有设置分页,django-rest-framework 会将所有资源类表序列化后返回,如果资源很多,就会对网站性能造成影响。为此,我们
- 本文实例为大家分享了python实现贪吃蛇双人大战的具体代码,供大家参考,具体内容如下晚上家里小朋友要玩贪吃蛇游戏,还要跟我对战,一时半会我
- 学设计模式中有个装饰模式,用java实现起来不是很难,但是远远没有python简单,难怪越来越火了!这里就简单讨论下python的几种装饰模
- 假如页面上有很多条记录,很多情况下,对这些信息按照字母表降序排序会比传统的升序排序显示效率更高。采用你熟悉的ORDER BY 子句,你可以很
- 对于数据库管理员来说,可以经常想了解一些之前未听说过的存储过程,特别是无文档类型的存储过程。或许是用这些存储过程,能够简化日常的数据管理。为
- master库对于SQLServer来说,是很重要的系统数据库,保存着所有Sqlserver的用户信息、数据库信息等,当数据库崩溃时,mas
- 自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法对于div,
- 本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript实现的,具体详情如下所示:单选框:实现的功能是:(类似平时的性
- 一、问题描述当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用inp
- 前言什么是树表查询?借助具有特殊性质的树数据结构进行关键字查找。本文所涉及到的特殊结构性质的树包括:二叉排序树。平衡二叉树。使用上述树结构存
- 目录1、前言2、详解1、前言使用中如果我们想把python可识别对象的dict类型的数据通过str类型写入文件或者存入变量中就需要用到dum
- 今天在一个QQ群中看到有人在问一个进度条的实现方式,当时因为工作时间,需求相对也比较紧,只是简单的说了一下可以通过CSS的边框属性和背景属性