Flask是一个 Python 编写的 Web 微框架,让我们可以使用 Python 语言快速实现一个网站或 Web 服务。
一个最小的 Flask 应用看起来会是这样:
# 可指定端口,以及 Debuge;也可以不指定,使用默认的 5000
1 2 3 4 5 6 7 8 9 |
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(port=8080, debug=True) |
Flask 用作 apis 接口,连接本地 mongdb 数据库。
运行脚本,则在内网127.0.0.1:5000
可运行 web 浏览器。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from flask import Flask import pymongo import random __all__ = ['app'] app = Flask(__name__) # MONGO_DB MONGO_URL = 'localhost' MONGO_DB = 'apis' MONGO_TABLE = 'xiaohua' @app.route('/') def index(): return '<h2>Welcome to My apis</h2>' @app.route('/xiaohua/') def get_xiaohua(): client = pymongo.MongoClient(MONGO_URL) db = client[MONGO_DB] total = db[MONGO_TABLE].find().count() rand = random.randint(0, total - 1) result = db[MONGO_TABLE].find({}, {'_id': 0, 'random': 0}).limit(1).skip(rand) result = list(result)[0]['content'] return result @app.route('/xiaohua/count/') def get_counts(): client = pymongo.MongoClient(MONGO_URL) db = client[MONGO_DB] total = db[MONGO_TABLE].find().count() return str(total) if __name__ == '__main__': app.run() |
Flask 部署到服务器上(Nginx)
可直接将本地的 IP 反向代理到公网 IP 上,实现外网访问。
1 2 3 4 5 6 7 |
server { listen 80; server_name xxxx.yuenshui.cn; location /{ proxy_pass http://127.0.0.1:5000; } } |
Flask 用作域名重定向(redirect)
可将服务器的 URL 重定向到外网的网址上(需部署到服务器上),用于日常网址管理(如 Email、微博等)
1 2 3 |
@app.route('/tests') def get_counts(): return redirect('https://www.baidu.com/',code=303) |