[英]Getting an Internal 500 error with flask/python/sqlalchemy in reading/displaying data
代碼在 flask 中運行良好,直到我添加代碼以使用數據庫中的 sqlalchemy 返回數據並使用 html 部分中的相應標簽顯示它。 pycharm 中的錯誤說明:UnboundLocalError: local variable 'unames' referenced before assignment。 我不確定我可以將標簽引用為全局標簽嗎? 我錯過了一些明顯的東西嗎?
這是一個概念證明,表明可以使用 flask 為小型項目返回和顯示來自 mysql 的數據。
這是app.py
import os
from flask import Flask
from flask import render_template
from flask import request
from flask_sqlalchemy import SQLAlchemy
project_dir = os.path.dirname(os.path.abspath(__file__))
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://username:password@localhost:3306/database'
db = SQLAlchemy(app)
class Users(db.Model):
uname = db.Column(db.String(80), unique=True, nullable=False, primary_key=True)
def __repr__(self):
return "<uname: {}>".format(self.uname)
@app.route("/", methods=["GET", "POST"])
def home():
if request.form:
users = Users(uname=request.form.get("uname"))
db.session.add(users)
db.session.commit()
unames = Users.query.all()
return render_template("home.html", unames=unames)
if __name__ == "__main__":
app.run(debug=True)'
這是家html代碼:
<h1>UserNames:</h1>
{% for uname in unames %}
<p>{{Users.uname}}</p>
{% endfor %}
預期結果應顯示用戶表中 unname 列中的 2 個用戶名。
HTML 有錯誤
<p>{{Users.uname}}</p>
您引用的是Users.uname
而不是它應該引用循環變量uname.uname
<h1>UserNames:</h1>
{% for user in unames %}
<p>{{user.uname}}</p>
{% endfor %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.