簡體   English   中英

在讀取/顯示數據時使用燒瓶/python/sqlalchemy 出現內部 500 錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM