python之Flask(一)
来源:互联网 发布:淘宝led散热片 编辑:程序博客网 时间:2024/06/05 16:44
一、简介:
Flask是python的一个小型web框架,用熟练后完全可以深入到源码中进行学习。相对于django要轻量级很多。但是小并不意味这功能少,基于最初的设计就是可扩展的框架,因此Flask的很多扩展,很多功能的实现可以基于扩展开发,非常方便。
Flask有两个依赖
1、路由、调试和基于Werkzeug的wsgi服务网关
2、Jinja2模版
werkzeug和jinja2都是由Flask核心开发者开发的
二、安装flask及相关扩展
都是基于源码进行安装 python setup.py install
Flask-0.12.2.tar.gz
Flask-Login-0.4.0.tar.gz
Flask-SQLAlchemy-2.2.tar.gz
Flask-WTF-0.14.2.tar.gz
SQLAlchemy-1.1.12.tar.gz
WTForms-2.1.zip
Jinja2-2.9.6.tar.gz
Werkzeug-0.12.2.tar.gz
MarkupSafe-1.0.tar.gz
Flask-Bootstrap-3.3.7.1.tar.gz
visitor-0.1.3.tar.gz
dominate-2.3.1.tar.gz
Flask-Script-2.0.5.tar.gz
三、路由和视图函数
客户端把请求发送给web服务器,web服务器再把请求发送给Flask程序实例进行处理。程序实例通过一个url到python函数的映射关系(一个map对象),找到url对应的处理函数,即为路由,通过app.route修饰器,进行路由注册!
@app.route('/')
def index():
return '<h1>hello world</h1>'
index函数称为视图函数,视图函数返回的响应可以是简单的html字符串,也可以是复杂的表单
另外url地址支持动态变化,比如 @app.route('/user/<name>') <>括号中的为变化部分,任何能匹配到静态部分的请求,都会把动态部分作为参数传入给函数;
动态部分支持int、float、path三种类型.(path也是字符串,但是不把斜线视作分隔符,而是当中动态片段的一部分) 如: /usr/<int:id>,只会匹配动态片段id为int类型的url请求。
四、启动
最简单的启动
if __name__=='__main__':
app(debug=True)
默认绑定127.0.0.1 5000这个地址。 debug为是否调试。如设置True,实际会创建一个新的线程进行跟踪
还可以同Flask_script进行启动,方便命令行参数的管理。后续再记。
五、第一个flask程序
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
if __name__=='__main__':
app.run(debug=True)
在界面通过访问http://ip:port 就可以访问。
注:如果访问有问题,可设置下host参数,默认绑定127.0.0.1会访问不到可以改成实际ip或者0.0.0.0 app.run(host="0.0.0.0",debug=True)
- python之Flask(一)
- Python Flask教程(一)
- python Flask Web开发入门(一)
- Flask python 微框架学习(一)
- python Flask学习笔记(一)
- Python Flask Web框架(一)
- Python Web框架之Flask(1)
- 【Python之Flask】
- Python 之 Flask框架
- flask学习之路(一)
- Flask Web开发(一)基于python的Web表单
- python之Flask初体验
- Flask总结(一)
- Flask学习(一)
- Flask--Restful(一)
- Flask入门(一)
- python web开发 之 flask教程(二)
- python web开发 之 flask教程(三)
- python中文件基本操作
- keilc 4 编译出现的几个错误解决
- QT5.9 在线程中导出EXCLE报 CoCreateInstance failure (尚未调用 CoInitialize) 解决办法
- CFGym 101002C 状压DP
- oracle内置函数
- python之Flask(一)
- 【LeetCode】572. Subtree of Another Tree
- HDU
- 【腾讯笔试】满二叉排序树中查找三个节点的最小子树的根节点
- linux命令-sed命令使用(1)
- python中mysql基本操作
- MongoDB C++开发环境搭建
- 分布式消息系统:Kafka
- 使用Maven运行Java main的3种方式