初识Flask框架
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框架的更多相关文章
- 初识Flask框架,以及Flask中的模板语言jinjia2和Flask内置的Session
一.web框架的对比 首先我们先来看下比较火的web框架 1.Django: 优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架 缺点:大到浪费资源,请求的时候需要的资源较高 2.Fl ...
- Flask(1)- 主流web框架、初识flask
一.Python 现阶段三大主流Web框架 Django.Tornado.Flask 对比 Django 主要特点是大而全,集成了很多组件(例如Models.Admin.Form等等), 不管你用得到 ...
- flask框架(一)——初识Flask
一.初识flask 1.什么是Flask:Flask是一个python编写的web框架,只是一个内核,默认依赖2个外部库:jinja2模板引擎和WSGI工具集--Werkzeug. 2.安装flask ...
- Flask 框架
装饰器知识回顾 http://www.cnblogs.com/0bug/p/7978595.html 普通装饰器格式: def wrapper(func): def inner(*args, **kw ...
- Flask框架 之 基本使用
初识Flask Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求 ...
- flask框架-上
flask简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权. Fla ...
- 初识Flask、快速启动
目录 一.初识Flask 1.1 什么是flask? 1.2 为什么要有flask? 二.Flask快速启动 一.初识Flask 1.1 什么是flask? Flask 本是作者 Armin Rona ...
- Flask 框架入门
Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...
- Flask框架获取用户IP地址的方法
本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最 ...
随机推荐
- Python语言学习:模块
一.模块 1. 模块(Module):以.py结尾的文件,包含python对象定义和python语句.使代码段更容易理解和使用. 模块分为两种:标准库(直接导入的库)和第三方库(需要下载安装的库). ...
- java gc 总结
垃圾查找 1.基于计数器 对象有引用计数,计数为0的,可以被收集 2.基于有向图 从gc root(栈.静态变量.JNI 变量)遍历,能访问的对象,不用被收集,其他的,可以被收集 因为计数器不能解决 ...
- Java多线程常见概念
进程和线程的区别 进程是资源分配的最小单位,线程是CPU调度的最小单位 线程不能看做独立应用,而进程可以 进程有独立的地址空间,互相不影响,线程只是进程的不同执行路径 线程没有独立的地址空间,多进程的 ...
- [Algo] 66. All Valid Permutations Of Parentheses I
Given N pairs of parentheses “()”, return a list with all the valid permutations. Assumptions N > ...
- python语法基础-网络编程-HTTP协议
############### HTTP协议 ############## """ 当你在浏览器地址栏敲入“http://www.cnblogs.com/”, ...
- docker里修改时间
在docker容器里,你会发现,你根本无法通过命令修改时间.这时我们就可以通过/etc/localtime这个配置文件修改时间了.但这个配置文件是一个二进制的文件,里面根本就是一堆乱码.所以我只好拷贝 ...
- Spring的分模块开发的配置
参考:Spring学习笔记-Spring的分模块开发的配置 在加载配置文件的时候,加载多个 例如把applicationContext.xml配置文件中的关于集合配置的部分剪切到application ...
- 树状数组 hdu2689 hdu2838
题意:给定一个正整数n,和一个1-n的一个排列,每个数可以和旁边的两个数的任意一个交换,每交换一次总次数就要加一,问将这个排列转换成一个递增的排列需要多少次交换? 题意可以转换成求这个排列的逆序对数. ...
- python之循删list
先来看下循环遍历删除list元素的一段代码: L=[1,3,1,4,3,6,5] # 0 1 2 3 4 5 6(下标) for i in L: if i%2!=0:#%表示除商取余数,除以2余数为0 ...
- 蓝桥杯-2016CC-卡片换位
卡片换位 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏.看下面 3 x 2 的格子 在其中放5张牌,其中A代表关羽,B代表张飞,* 代表士兵.还有一个格子是空着的. 你可以把一张牌移动到相邻的空 ...