Python(Flask)用户输入表单

时间:2018-02-21 20:07:43

标签: python flask data-science

我对python flask很新,只是想检查下面的代码,我做错了。

当我在像(localhost:5000/submit?name=dial&id=565337)这样的URL上运行时,它运行正常,但是当我在表单上传递值并产生错误时它没有运行。

from flask import Flask, request, redirect, url_for
import Eoc_Summary
import Eoc_Daily
import Eoc_AdSize
import Eoc_Video
import Eoc_Intraction
import EOC_definition
from config import Config

app = Flask(__name__)

form = '''
<html>
   <body>
      <form action = "http://localhost:5000" method="POST">
         <p>Enter Name:</p>
         <p><input type = "text" name = "name" /></p>
         <p>Enter id:</p>
         <p><input type = "text" name = "id" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>
   </body>
</html>
'''

@app.route("/")
def index():
    if request.method == 'GET':
        return form
    elif request.method == 'POST':
        name = request.form['name']
        id = request.form['id']
        return submit(name, id)

@app.route('/submit')
def submit():
    name = request.args.get('name')
    id = request.args.get('id')
    c = Config(name, int(id))

    obj_summary=Eoc_Summary.Summary(c)
    obj_summary.main()
    obj_daily=Eoc_Daily.Daily(c)
    obj_daily.main()
    obj_adSize=Eoc_AdSize.ad_Size(c)
    obj_adSize.main()
    obj_Video=Eoc_Video.Video(c)
    obj_Video.main()
    obj_Intraction=Eoc_Intraction.Intraction(c)
    obj_Intraction.main()
    obj_definition=EOC_definition.definition(c)
    obj_definition.main()
    c.saveAndCloseWriter()
    return 'Report Generated'


if __name__ == '__main__':
    app.run()

1 个答案:

答案 0 :(得分:1)

您必须在装饰器中添加方法

@app.route("/", methods=['GET', 'POST'])
def index():
   {...}

此外,您必须将论据nameid添加到submit():

@app.route('/submit')
def submit(name, id):
   {...}

最后,导入make_response

from flask import Flask, request, redirect, url_for, make_response
相关问题