我是编程新手,并在 pythonanywhere.com 上建立了一个带有评论部分的小网站,主要引用他们的教程。但是,当我在表单中发布评论时,评论不会添加到数据库中,并且由于某种原因,程序将我重定向到索引页面(目的是重定向以留在同一页面上)
任何关于我可能做错的事情的建议将不胜感激!
Python 代码:
import random
from flask import Flask, request, session, redirect, url_for, render_template, flash
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug.routing import RequestRedirect
app = Flask(__name__)
app.config["DEBUG"] = True
SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://{username}:{password}@{hostname}/{databasename}".format(
username="username",
password="password",
hostname="hostname",
databasename="majaokholm$majaokholm",
)
app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299
db = SQLAlchemy(app)
class Comment(db.Model):
__tablename__ = "comments"
id = db.Column(db.Integer, primary_key=True)
content = db.Column(db.String(4096))
@app.route("/")
def index():
return render_template("index_page.html")
@app.route('/post', methods=["GET", "POST"])
def post():
if request.method == "GET":
return render_template("post_page.html", comments=Comment.query.all())
comment = Comment(content=request.form["contents"])
db.session.add(comment)
db.session.commit()
return redirect(url_for('post'))
以及 HTML 模板中的表单:
<form action="." method="POST">
<textarea class="form-control" name="contents" placeholder="Enter a
comment"></textarea>
<input type="submit" value="Post comment">
</form>
提前非常感谢!
最佳答案
目前,表单中的 action="."
实际上指向当前目录的根目录,对于 /post
来说恰好是 /
从而指向索引
。
最好使用 action="{{ url_for('your_target_view') }}"
代替。
关于python - 无法在 python Flask 应用程序中向 SQL 数据库添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36493360/