flask
2020-02-16 本文已影响0人
皮蛋豆腐酱油
一. 简单应用
1. 安装flask
sudo easy_install pip(如果没有pip先安装pip)
sudo pip install flask
2. 一个简单的应用
# coding=utf-8
from flask import Flask # 导出Flask类
app = Flask(__name__) # 生成一个web app对象
@app.route('/') # 注册一个url,表示当请求url + '/',这个网址时,执行hello_world这个函数
def hello_world():
return 'hello, world'
if __name__ == '__main__': # 启动这个app应用
app.run() # 相关参数app.run(host=None, port=None, debug=None, **options)
# host默认是127.0.0.1
# port默认是5000
保存为hello.py(文件名不能是flask.py,会与Flask本身冲突)
$ python hello.py
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
将该网址粘贴到浏览器打开即可
Mac 下 遇到报错python socket.error: [Errno 48] Address already in use
打开终端,输入sudo lsof -i:XXXX
xxxx是你刚刚用来开启服务的端口号
然后执行kill -9 aaaa
aaaa是出现的那个PID
然后重新运行程序即可成功
3. 文件目录结构
4. flask深入学习资料
Flask官方网站:http://docs.jinkan.org/docs/flask/
Flask大型教程项目:http://www.pythondoc.com/flask-mega-tutorial/
stack overflow:http://stackoverflow.com/questions/tagged/flask
二. python web开发框架
1. flask
简单,轻量,灵活性大
2. django
简单,比flask重,灵活性没有flask好,出现时间长
3. web.py
简单,轻量,但不会再积极维护了
三.python flask框架使用
views.py:接口逻辑
# coding=utf-8
# views.py
from flask import Flask # 导出Flask类
app = Flask(__name__) # 生成一个web app对象
@app.route('/') # 注册一个url,表示当请求url + '/',这个网址时,执行home_page这个函数
def home_page():
home_data = logic.get_home()
return home_data
@app.route('/books')
def books():
books_data = logic.get_books()
return books_data
@app.route('/book/<string: book_id>')
def book(book_id):
book_data = logic.get_book(book_id)
return book_data
@app.route('/students')
def students():
students_data = logic.get_students()
return students_data
@app.route('/student/<string: student_id>')
def book(student_id):
student_data = logic.get_student(student_id)
return student_data
if __name__ == '__main__': # 启动这个app应用
app.run() # 相关参数app.run(host=None, port=None, debug=None, **options)
# host默认是127.0.0.1
# port默认是5000
logic.py:逻辑处理
# coding=utf-8
# logic.py
def get_home():
#获取图书馆主页资料,一般是读取数据库或者缓存系统
return 'data of home page'
def get_books():
return 'list of books basic info'
def get_book(book_id):
return 'detailed info of book : {}'.format(book_id)
def get_students():
return 'list of students basic info'
def get_student(student_id):
return 'detailed info of student : {}'.format(student_id)
run.py:应用发布