python - 无法在 python Flask 应用程序中向 SQL 数据库添加注释

标签 python sql forms flask flask-sqlalchemy

我是编程新手,并在 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/

相关文章:

php - 使用 "AND"表达式构建动态 SQL 而不会混淆嵌套条件?

sql - 将查询合并为一个

javascript - Livevalidation 和 checkbox、radio、select 组

javascript - 获取node.js上文本字段的值

python解析文件

Python:与 winsound.Beep 最接近的 Linux 和 OSX 等价物是什么?

mysql - 如何像tinder一样获得匹配,每个用户在表中都有自己的条目

python - 按计数值过滤 Pandas 数据框组

python - 将输入从一个线程子进程发送到另一个线程子进程

c# - this.Controls 返回 null