项目目录结构

uwsgi生产环境部署flask项目

 

开发调试环境

     开发环境中启动的web服务是由flask内置的web服务器来提供的,所以服务启动的时候监听的网卡和端口是在项目中的app.py中进行指定

from flask import Flask,render_template,request,redirect,session
from flask import jsonify,abort,json,make_response,send_from_directory,send_file
from flask_bootstrap import Bootstrap
from main import userhandler
from main import msgconfig as m
import os
from urllib.parse import unquote,quote


app = Flask(__name__)
bootstrap = Bootstrap(app)


@app.route('/index',methods=['GET'])
def index():
    return send_file("static/pages/sitetable.html")

@app.route('/')
def main():
    return send_file("static/pages/sitetable.html")

@app.route('/login',methods=['POST'])
def login():
    loginame = request.form.get('loginuser')
    loginpwd = request.form.get('loginpwd')
    result = userhandler.checkuser(loginame, loginpwd)
    if result:
        session['user'] = {'user': loginame}
        m.loginmsg=""
        return redirect("/index")
    m.loginmsg="error"
    return redirect("/")

@app.route('/site',methods=['GET'])
def get_sites():
    sites = userhandler.get_sitesexcelfile()
    return jsonify({'sites': sites})

@app.route('/phone/site',methods=['GET'])
def get_phonesites():
    sites = userhandler.get_sitesyamlfile()
    return jsonify({'sites': sites})


@app.route('/upload',methods=['POST'])
def upload():
    f = request.files['file']
    userhandler.upload_excelfile(f)
    return "success"


@app.route('/downsite',methods=['GET'])
def downtxt():
    return send_from_directory('static/files/','sites.xlsx', as_attachment=True)


@app.route('/initsites',methods=['POST'])
def uploadtxt():
    f = request.files.get('myfile')
    if f:
        userhandler.upload_sitesexcel(f)
        return send_file("static/pages/sitetable.html")
    else:
        return "error"


@app.route('/initdir',methods=['GET'])
def initexecledir():
    userhandler.initexceldir()
    return "success"


@app.route('/excellist',methods=['GET'])
def getexcellist():
    sitename = request.args.get("sitename")
    templateName = request.args.get("templateName")
    sitename= unquote(unquote(sitename)).encode('utf-8').decode('utf-8-sig')
    filelist = userhandler.getexcellist(sitename, templateName)
    return jsonify(filelist)

@app.route('/uploadexcel',methods=['POST'])
def uploadexcel():
    f = request.files.get('myfile')
    sitename = request.form.get('sitename')
    templateName = request.form.get("templateName")
    userhandler.upload_excelfile(f, sitename, templateName)
    return send_file("static/pages/exceltable.html")

@app.route('/deletefile',methods=['GET'])
def deletefile():
    sitename = unquote(unquote(request.args.get("sitename")))
    filename = unquote(unquote(request.args.get("filename")))
    templateName = request.args.get("templateName")
    userhandler.deletefile(sitename, filename, templateName)
    return "success"


@app.route("/renamebase",methods=['GET'])
def renamefile():
    sitename =  unquote(unquote(request.args.get("sitename")))
    filename =  unquote(unquote(request.args.get("filename")))
    templateName = request.args.get("templateName")
    userhandler.renamefile(sitename, filename, templateName)
    return "success"

@app.route("/baksite",methods=['GET'])
def baksite():
    userhandler.sitebak()
    return "success"


@app.route('/phone/save',methods=['POST'])
def phonesaveexcel():
    sitename = request.form.get('sitename')
    sitename = unquote(unquote(sitename))
    data = request.form.get("data")
    userhandler.save_phoneexcel(sitename, data)
    return "success"


@app.route('/phone/basedata',methods=['GET'])
def getbasedatabyexcel():
    sitename = request.args.get("sitename")
    sitename = unquote(unquote(sitename))
    return userhandler.get_phonebasedata(sitename)


@app.route('/phone/savect',methods=['POST'])
def phonesavect():
    sitename = request.form.get('sitename')
    sitename = unquote(unquote(sitename))
    data = request.form.get("data")
    userhandler.save_phoneexcelct(sitename, data)
    return "success"




@app.before_request
def process_request():
    pass

@app.after_request
def process_response(response):
    response.headers['Access-Control-Allow-Origin'] = "http://192.168.0.1:81"
    response.headers["Access-Control-Allow-Credentials"]="true";
    return response


app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)
app.py

相关文章: