Flask 学习之flask入门
一.Flask的简单介绍
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。
“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。
默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。
官网: https://palletsprojects.com/p/flask/
官方文档: http://docs.jinkan.org/docs/flask/
二.Flask的相关依赖
1.依赖
当安装 Flask 时,以下配套软件会被自动安装。
• Werkzeug 用于实现 WSGI ,应用和服务之间的标准 Python 接口。
• Jinja 用于渲染页面的模板语言。
• MarkupSafe 与 Jinja 共用,在渲染页面时用于避免不可信的输入,防止注入攻击。
• ItsDangerous 保证数据完整性的安全标志数据,用于保护 Flask 的 session cookie.
• Click 是一个命令行应用的框架。用于提供 flask 命令,并允许添加自定义管理命令。
2.可选依赖
以下配套软件不会被自动安装。如果安装了,那么 Flask 会检测到这些软件。
• Blinker 为信号 提供支持。
• SimpleJSON 是一个快速的 JSON 实现,兼容 Python’s json 模块。如果安装了这个软件,那么会优先
使用这个软件来进行 JSON 操作。
• python-dotenv 当运行 flask 命令时为通过 dotenv 设置环境变量 提供支持。
• Watchdog 为开发服务器提供快速高效的重载。
3.Flask常用扩展包
Flask-SQLalchemy:操作数据库,ORM;
Flask-script:终端脚本工具,脚手架; 终端自动生成代码工具的称为脚手架
Flask-migrate:管理迁移数据库;
Flask-Session:Session存储方式指定;
Flask-WTF:表单;
Flask-Mail:邮件;
Flask-Bable:提供国际化和本地化支持,翻译;
Flask-Login:认证用户状态;
Flask-OpenID:认证, OAuth;
Flask-RESTful:开发REST API的工具;
Flask JSON-RPC: 开发rpc远程服务[过程]调用
Flask-Bootstrap:集成前端Twitter Bootstrap框架
Flask-Moment:本地化日期和时间
Flask-Admin:简单而可扩展的管理接口的框架
可以通过 http://flask.pocoo.org/extensions/ 查看更多flask官方推荐的扩展
三.flask安装
在虚拟环境下使用下面命令安装flask:
pip install flask
与时俱进[最新版的flask代码]
如果想要在正式发行之前使用最新的Flask开发版本,可以使用如下命令从主分支安装或者更新代码:
$pip install -U https://github.com/pallets/flask/archive/master.tar.gz
四.最简单的flask应用
创建一个hello_world.py的文件:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "hello world!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
# 运行 python hello_world.py
# 使用以下url访问 可以得到打印结果
# http://127.0.0.1:5000/
代码分析:
# 导入Flask类
from flask import Flask """
import_name Flask程序所在的包(模块),传 __name__ 就可以
其可以决定 Flask 在访问静态文件时查找的路径
static_path 静态文件访问路径(不推荐使用,使用 static_url_path 代替)
static_url_path 静态文件访问路径,可以不传,默认为:/ + static_folder
static_folder 静态文件存储的文件夹,可以不传,默认为 static
template_folder 模板文件存储的文件夹,可以不传,默认为 templates
"""
app = Flask(__name__) # 加载项目配置
# 配置类
class Config(object):
DEBUG = True app.config.from_object( Config ) # 指定服务器IP和端口
app.run(host="0.0.0.0", port=5000)
访问的结果:

最简单应用的解释:
1.首先我们导入了Flask类。该类的实例将会成为我们的WSGI应用。
2.接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。如果你使用一个单一模块(就像本例),那么应当使用__name__,因为名称会根据这个模块是按应用方式使用还是作为一个模块导入而发生变化(可能是‘__main__’,也可能是实际导入的名称)。这个参数是必需的,这样Flask才能知道在哪里可以找到模板和静态文件等东西。
3.然后我们使用route()装饰器来告诉Flask触发函数的URL。
4.函数名称被用于生成相关联的URL。函数最后返回需要在用户浏览器中显示的信息。
再写一个简单的练习Index Page:
代码如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "hsz" from flask import Flask app = Flask(__name__) @app.route("/index")
def index():
return "Index Page!" if __name__ == "__main__":
app.run(host='127.0.0.1', port=5000)
#运行后使用下面url访问
# http://127.0.0.1:5000/index

Flask 学习之flask入门的更多相关文章
- Flask 学习目录
Flask 学习目录 Flask 的学习过程是一个了解如何从单个模块搭建一个 Web 框架的过程. Python.Flask 的安装和设置 简单的 Hello World 程序 使用 Jinjia2 ...
- Flask学习目录
目录 Flask学习初识 Flask学习二
- flask学习1
总结 Flask Web 框架 轻量 websocket 全双工通讯 socket TCP 通讯 MongoDB 数据库 文件型数据库 {} 没有限制 和 约束 Mui + HTML5 Plus 调用 ...
- Python 什么是flask框架?快速入门
一:Python flask框架 前言 1.Python 面向对象的高级编程语言,以其语法简单.免费开源.免编译扩展性高,同时也可以嵌入到C/C++程序和丰富的第三方库,Python运用到大数据分析. ...
- [ZHUAN]Flask学习记录之Flask-SQLAlchemy
From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...
- [Flask]学习杂记--模板
这个学习杂记主要不是分享经验,更多是记录下falsk的体验过程,以后做东西在深入研究,因为django之前用的时间比较长,所以很多概念都是一看而过,做个试验了解下flask的功能. flask中使用是 ...
- 二.Flask 学习模板
Flask 为你配置 Jinja2 模板引擎.使用 render_template() 方法可以渲染模板,只需提供模板名称和需要作为参数传递给模板的变量就可简单执行. 至于模板渲染? 简单来说,就是将 ...
- Python Flask学习笔记之模板
Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...
- Python Flask学习笔记之Hello World
Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...
随机推荐
- AntDesign(React)学习-12 使用Table
AntDesign(Vue)版的Table中使用图片https://www.cnblogs.com/zhaogaojian/p/11119762.html 之前在使用VUE版Table时,使用大图片时 ...
- vscode里的NPM脚本
NPM脚本的开启与关闭 点击设置-功能-任务 控制为所有任务提供程序扩展启用"提供任务".如果"任务:运行任务"命令速度较慢,则禁用任务提供程序的自动检测可能会 ...
- webpack 之搭建本地服务器
搭建本地服务器 webpack提供了一个可选的本地开发服务器,这个本地服务器基于node.js搭建,内部使用express框架,可以实现 我们想要的让浏览器自动刷新显示我们修改后的结果 不过它是一个单 ...
- 忘记本地MySQL数据库密码的解决方法
平台:win7 1.打开cmd窗口,进入 MySQL的安装目录. 2.停止MySQL的服务.已经停止了. 右键MySQL,看到启动是可点击的,证明MySQL服务已停止运行. 3.将root用户对数据库 ...
- 微信小程序块导航
1.wxml页面 <!--index.wxml--> <swiper current="{{currentTab}}" class="swiper-bo ...
- centos7修改xshell默认访问端口由22修改为62058
1.vim /etc/ssh/sshd_config 2.新加端口62058:Port 62058 3.重启sshd服务:systemctl restart sshd 4.将新加端口添加到防火墙并重启 ...
- ORA-01843: not a valid month
问题描述 ORA-01843: not a valid month oracle数据库插入出现无效的月份
- 通过恢复目录(Catalogue)进行PDB级别的PITR恢复
数据库版本:Oracle 12.2.0.1 本篇为<执行PDB的PITR恢复失败的说明 (文档 ID 2435452.1)>的证明篇,通过当前控制文件,无法在PDB级别进行PITR(Poi ...
- 如何在linux主机上运行/调试 arm/mips架构的binary
如何在linux主机上运行/调试 arm/mips架构的binary 原文链接M4x@10.0.0.55 本文中用于展示的binary分别来自Jarvis OJ上pwn的add,typo两道题 写这篇 ...
- 创建本地yum源仓库
更新本地yum源 yum仓库服务端配置如下 : 1. 创建yum仓库目录 mkdir -p /data/yum_data/ cd /data/yum_data/ #可以上传rpm包到此目录,此目录下面 ...