1.web目录下构建结构
2.编辑启动文件app.py
# -*- coding: utf-8 -*-
# @author: Oscar
# @created: 2024-04-16
# 创建应用实例
import sys
from Config import Config;
from server import app
# 启动Flask Web服务
if __name__ == '__main__':
env = 'prod'
if (len(sys.argv)==2 and sys.argv[1]=='dev'):
env = 'dev'
config = Config("config.%s.cnf" % (env));
data = config.get_content('server')
app.run(host=data['host'], port=data['port'])
3.添加server
打开__init__.py文件
# -*- coding: utf-8 -*-
# @author: Oscar
# @created: 2024-04-16
#
from flask import Flask
# 初始化web应用
app = Flask(__name__, instance_relative_config=True)
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization,X-CSRFToken, Token')
response.headers.add('Access-Control-Allow-Methods', 'GET,POST')
return response
# 加载路由接口
from server import api
4.添加具体业务处理
这里面添加了两个测试业务模块
__init__.py
from server.api import auth
from server.api import goods
auth.py
# -*- coding: utf-8 -*-
# @author: Oscar
# @created: 2024-04-16
#
from flask import render_template, request
from server import app
from server.response import make_succ_empty_response, make_succ_response, make_err_response
import random
@app.route("/auth/captcha", methods=['GET'])
def captcha():
#just for test
random_num = random.randint(1000, 9999)
return make_succ_response(str(random_num))
goods.py
# -*- coding: utf-8 -*-
# @author: Oscar
# @created: 2024-04-16
#
from flask import render_template, request
from server import app
from server.response import make_succ_empty_response, make_succ_response, make_err_response
@app.route("/goods/list", methods=['GET'])
def goods():
goods = [
{'id':10001,'name':'商品1'},
{'id':10002,'name':'商品2'},
{'id':10003,'name':'商品3'},
{'id':10004,'name':'商品4'},
]
datas = {'datas': goods, 'total':1000,'page':2}
return make_succ_response(datas)
5.服务器启动
//测试环境启动
python app.py dev
//生产环境启动
python app.py prod