我对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()
答案 0 :(得分:1)
您必须在装饰器中添加方法
@app.route("/", methods=['GET', 'POST'])
def index():
{...}
此外,您必须将论据name
和id
添加到submit():
@app.route('/submit')
def submit(name, id):
{...}
最后,导入make_response
from flask import Flask, request, redirect, url_for, make_response