如何解决FLASK-在服务器上找不到请求的URL如果您手动输入网址,请检查拼写,然后重试
我正在使用Flask运行此站点。当我运行脚本时,将出现初始站点(index.html),并且一切正常。但是,当我单击页面底部的“提交”时,会遇到此错误“在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写,然后重试。”
能帮我找到问题吗? 主应用程序的代码如下。
from flask import Flask,render_template,request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
ENV = 'dev'
if ENV =='dev':
app.debug = True
app.config['SQLALCHEMY_DATABASEU_URI'] = 'postgresql://postgres:postgres@localhost/Jeopardy'
else:
app.debug = False
app.config['SQLALCHEMY_DATABASEU_URI'] = ''
#sapp.config.from_object(os.environ['APP_SETTINGS'])
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db=SQLAlchemy(app)
class Jeo(db.Model):
__tablename__ = 'allc'
number = db.Column(db.Integer,primary_key=True)
category = db.Column(db.String())
question = db.Column(db.String())
answer = db.Column(db.String())
def __init(self,category,question,answer,number):
self.category = category
self.question = question
self.answer = answer
self.number = number
@app.route('/')
def index():
return render_template("index.html")
@app.route("/add")
def add():
category=request.args.get('category')
question=request.args.get('question')
answer=request.args.get('answer')
number=request.args.get('number')
try:
allc=Jeo(
category = category,question = question,answer = answer,number = number
)
db.session.add(allc)
db.session.commit()
return " added. "
except Exception as e:
return(str(e))
@app.route("/add/form",methods=['GET','POST'])
def add_form():
if request.method == 'POST':
category=request.get('category')
question=request.get('question')
answer=request.get('answer')
number=request.get('number')
try:
allc=Jeo(
category = category,number = number
)
db.session.add(allc)
db.session.commit()
return ("added. ")
except Exception as e:
return(str(e))
return render_template('index.html')
if __name__ == '__main__':
app.run()
并且代码index.html代码是:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device=width,initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="../static/style.css">
<title>Jeopardy</title>
</head>
<body>
<div class="="container">
<img src="../static/logo.png" alt="Jeopardy" class ="logo">
<!-- @todo - message-->
<form action = "/submit" methods="POST">
<div class = " form-group">
<h3>Jeopardy Question</h3>
<input
type = "text"
name = "Question"
placeholder= "Type the Jeopardy question here"
/>
</div>
<div class = " form-group">
<h3>Jeopardy Answer</h3>
<input
type = "text"
name = "Answer"
placeholder= "Type the Jeopardy Answer here"
/>
</div>
</form>
</div>
</body>
</html>
解决方法
问题在这里...您必须在其中编写action =“ add”形式的地方将其写为action =“ submit”
<form action = "/add" methods="POST">
<div class = " form-group">
<h3>Jeopardy Question</h3>
<input
type = "text"
name = "Question"
placeholder= "Type the Jeopardy question here"
/>
</div>
<div class = " form-group">
<h3>Jeopardy Answer</h3>
<input
type = "text"
name = "Answer"
placeholder= "Type the Jeopardy Answer here"
/>
</div>
</form>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。