Flask简介:

Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。

Flask的环境搭建:

1. 创建虚拟环境

mkvirtualenv flask -p python3

2. 安装flask框架

pip install flask

编写第一个Flask程序:

1. 创建一个python文件,且名字不能为flask和关键字

2. 编写程序

# 1. 导包
from flask import Flask # 2. 创建Flask对象
# __name__:表示导包名字为当前文件名
app = Flask(__name__) # 3. 编写试图函数并设置路由
@app.route('/')
def index():
return 'index' # 运行flask程序
if __name__ == '__main__':
# host:IP
# port:端口
# bebug:True开启,False关闭
app.run()

Flask导入配置信息:

1. 使用配置文件

1. 创建配置文件config.ini,并编写配置

# 配置文件中的配置选项必须大写
DEBUG = True

2. 导入配置文件

# 1. 导包
from flask import Flask # 2. 创建Flask对象
# __name__:表示导包名字为当前文件名
app = Flask(__name__) # 导入配置文件
app.config.from_pyfile('config.ini') # 3. 编写试图函数并设置路由
@app.route('/')
def index():
return 'index' # 运行flask程序
if __name__ == '__main__':
# host:IP
# port:端口
# bebug:True开启,False关闭
app.run()

2. 使用配置类

1. 编写配置信息类

class Config(object):
'''配置类中的配置信息必须大写'''
DEBUG = True

2. 导入配置类

# 1. 导包
from flask import Flask # 2. 创建Flask对象
# __name__:表示导包名字为当前文件名
app = Flask(__name__) class Config(object):
'''配置类中的配置信息必须大写'''
DEBUG = True # 导入配置类
app.config.from_object(Config) # 3. 编写试图函数并设置路由
@app.route('/')
def index():
return 'index' # 运行flask程序
if __name__ == '__main__':
# host:IP
# port:端口
# bebug:True开启,False关闭
app.run()

3. 使用环境变量

1. 设置环境变量

2. 导入环境变量

# 1. 导包
from flask import Flask # 2. 创建Flask对象
# __name__:表示导包名字为当前文件名
app = Flask(__name__) # 导入环境变量
app.config.from_envvar('DEV') # 3. 编写试图函数并设置路由
@app.route('/')
def index():
return 'index' # 运行flask程序
if __name__ == '__main__':
# host:IP
# port:端口
# bebug:True开启,False关闭
app.run()

Flask启动方式

1. 服务器启动方式

直接在程序中编写app.run()方法然后运行即可。

2. 命令行启动方式

设置环境变量:

export FLASK_APP=文件名

启动命令:

flask run

可以添加选项参数

-p port
-h host
-- help

初识Flask框架的更多相关文章

  1. 初识Flask框架,以及Flask中的模板语言jinjia2和Flask内置的Session

    一.web框架的对比 首先我们先来看下比较火的web框架 1.Django: 优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架 缺点:大到浪费资源,请求的时候需要的资源较高 2.Fl ...

  2. Flask(1)- 主流web框架、初识flask

    一.Python 现阶段三大主流Web框架 Django.Tornado.Flask 对比 Django 主要特点是大而全,集成了很多组件(例如Models.Admin.Form等等), 不管你用得到 ...

  3. flask框架(一)——初识Flask

    一.初识flask 1.什么是Flask:Flask是一个python编写的web框架,只是一个内核,默认依赖2个外部库:jinja2模板引擎和WSGI工具集--Werkzeug. 2.安装flask ...

  4. Flask 框架

    装饰器知识回顾 http://www.cnblogs.com/0bug/p/7978595.html 普通装饰器格式: def wrapper(func): def inner(*args, **kw ...

  5. Flask框架 之 基本使用

    初识Flask Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求 ...

  6. flask框架-上

    flask简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权. Fla ...

  7. 初识Flask、快速启动

    目录 一.初识Flask 1.1 什么是flask? 1.2 为什么要有flask? 二.Flask快速启动 一.初识Flask 1.1 什么是flask? Flask 本是作者 Armin Rona ...

  8. Flask 框架入门

    Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...

  9. Flask框架获取用户IP地址的方法

    本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最 ...

随机推荐

  1. Qt QString 和 LPCWSTR 的相互转换

    在windosw 编程中,常用到LPCWSTR 变量,QT中最常用到QString,下面提供QString和LPCWSTR 相互转换的方法 LPWSTR 转换成QString LPCWSTR str; ...

  2. [GX/GZOI2019]与或和(单调栈+按位运算)

    首先看到与或,很显然想到按照位拆分运算.然后就变成了0/1矩阵,要使矩阵在当前位与为1,则矩阵全为1,如果是或为1,则是矩阵不全为0,然后求全为0/1的矩阵个数即可.记录c[i][j]表示以a[i][ ...

  3. Clairaut 定理 证明

    (Clairaut 定理)设 $E$ 是 $\mathbf{R}^n$ 的开子集合,并设 $f:\mathbf{E}\to \mathbf{R}^{m}$ 是 $E$ 上的二次连续可微函数.那么对于一 ...

  4. D. Array Splitting(后缀数组)

    You are given an array

  5. iOS MJRefresh的使用 (列表上拉加载更多)

    pod 'MJRefresh' import MJRefresh 加载更多 let footView = MJRefreshAutoNormalFooter(refreshingBlock:{ //去 ...

  6. android全功能音乐播放器、基于MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的综合应用、图片滤镜处理等源码

    Android仿微信朋友圈查看图片下拽返回. Android图片滤镜处理,相机滤镜处理效果源码 Android自定义View源码:一个水平的进度条 基于MVP-Clean + Weex + RxJav ...

  7. iOS自定义弹出视图、收音机APP、图片涂鸦、加载刷新、文件缓存等源码

    iOS精选源码 一款优秀的 聆听夜空FM 源码 zhPopupController 简单快捷弹出自定义视图 WHStoryMaker搭建美图(贴纸,涂鸦,文字,滤镜) iOS cell高度自适应 有加 ...

  8. Contig|scaffold|N50|L50|NG50|贪心算法|de bruiji graph|

    生物信息学 Contig是reads拼成的连续的DNA片段,连续表达一个gene.通过双端测序的contig可确定contig之间的关系得到scaffold,Scaffold是reads拼成的有gap ...

  9. 【Java集合】试读LinkedList源码

    LinkedList的本质是双向链表.(01) LinkedList继承于AbstractSequentialList,并且实现了Dequeue接口. (02) LinkedList包含两个重要的成员 ...

  10. [LC] 367. Valid Perfect Square

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...