我正在尝试在Flask中创建一个基本表单,它将接受输入,操作它然后返回输出。我遇到的问题是,当我运行终端并尝试让我的应用程序在http://127.0.0.1:5000/服务器上运行时,文件不可见。不确定错误在哪里?
这就是我组织文件的方式:
/Users/eas/Desktop/grota/templates/index.html
/Users/eas/Desktop/grota/templates/age.html
/Users/eas/Desktop/grota/app.py
这是app.py文件
from flask import Flask, render_template,request
app = Flask(__name__)
@app.route('/send',methods = ['GET','POST'])
def send():
if request.method == 'POST':
age = request.form['age']
return render_template('age.html',age=age)
return render_template('index.html')
if __name__ == '__main__':
app.run()
这是index.html文件
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
</head>
<body>
<h1>How old are you?</h1>
<form method="POST" action = "/send">
<div class = "form-group">
<input type="text" name = "age">
</div>
<input class="btn btn-primary" type="submit" value="submit">
</form>
</body>
</html>
这是age.html文件
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Your age is{{age}}</h1>
</body>
答案 0 :(得分:0)
试试这里:http://127.0.0.1:5000/send
如果这不起作用,您在控制台或浏览器中会出现什么错误?
编辑:
我刚刚尝试过它,它有效。尝试在浏览器的新选项卡中重新加载页面,看看它是否仍然存在。此错误与您在网页上输入的命名以及使用request.form['age']
答案 1 :(得分:0)
您没有设置根路线。
或者您打开http://127.0.0.1:5000/send
或者你可以使用这个快速而肮脏的修复(正如你在装饰器中看到的那样/和/ send都被考虑在内):
from flask import Flask, render_template,request
app = Flask(__name__)
@app.route('/',methods = ['GET'])
@app.route('/send',methods = ['GET','POST'])
def send():
if request.method == 'POST':
age = request.form['age']
return render_template('age.html',age=age)
return render_template('index.html')
if __name__ == '__main__':
app.run()
如果你不处理&#39; /&#39;当你打开http://127.0.0.1
时,什么都不会发生如果您更清楚地解释了您想要获得的结果,我可以提供更好的帮助。
答案 2 :(得分:-1)
在寻找问题时,我试图解决问题,但发现了您的问题。对于包含完整代码(带有py和2个HTML文件)的解决方案,您可以查看我的repl.it:https://repl.it/@AlperenAtik/NaturalShortActivecell#main.py
问题是:
对于那些喜欢更艰难的方式的人-在stackoverflow中看到事物-不起作用,我添加了代码块。享受。
对于main.py
from flask import Flask, render_template,request
app = Flask(__name__)
@app.route('/',methods = ['GET','POST'])
def send():
if request.method == 'POST':
age = request.form['age']
return render_template('age.html',age=age)
return render_template('index.html')
if __name__ == '__main__':
app.run(host = '0.0.0.0', port = 8080
我将主机保留为'0.0.0.0',端口保留为8080。如果您在终端上运行Python,则可以尝试(host ='127.0.0.1',port:5000')。
对于templates / index.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
</head>
<body>
<h1>How old are you?</h1>
<form method="POST" action = "/">
<div class = "form-group">
<input type="text" name = "age">
</div>
<input class="btn btn-primary" type="submit" value="submit">
</form>
</body>
</html>
对于template / age.html
<html>
<head>
</head>
<body>
<h1>Your age is {{age}}</h1>
</body>