【问题标题】:Coding newbie: internal server error when trying to run a flask web app with database connection编码新手:尝试使用数据库连接运行烧瓶 Web 应用程序时出现内部服务器错误
【发布时间】:2020-06-14 21:03:51
【问题描述】:

我正在开发一个简单的烧瓶网络应用程序。我已经上传了所有内容,以便在我的网络服务器上执行该项目。不幸的是它不起作用(错误:内部服务器错误 服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出现错误。)我还没有找到任何可以帮助我的东西。

这是我的代码

from flask import Flask, render_template, url_for, request,\
    redirect, g
from wtforms import Form, StringField, PasswordField, validators
import mysql.connector 
from werkzeug.security import generate_password_hash
from db.db_credentials import DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE  

class RegistrationForm(Form):
    username = StringField('Nutzernamen angeben', [validators.Length(min=4, max=50)])
    email = StringField('Email angeben', [validators.Length(min=6, max=255)])
    password = PasswordField('Password angeben',
            [validators.length(min=4, max=256), validators.DataRequired(), validators.EqualTo('confirmation', message='Passwörter müssen übereinstimmen')])
    confirmation = PasswordField('Passwort wiederholen')


app = Flask(__name__)

@app.route('/')
@app.route('/index')
def index():
    return render_template('index.html')


@app.route('/registration', methods=["GET", "POST"])
def register(): 
    form = RegistrationForm(request.form)
    username = form.username.data
    password = form.password.data
    email = form.email.data

    password = generate_password_hash(password)
    if request.method == "POST" and form.validate():
        assert isinstance(DB_DATABASE, tuple)
        g.con = mysql.connector.connect(host=DB_HOST, user=DB_USER, password=DB_PASSWORD,
                                        database=DB_DATABASE)
        cursor = g.con.cursor
        cursor.execute("INSERT INTO konten (username, password, email) VALUES {%s}, {%s}, {%s} ",
                       username, password, email)
        return redirect(url_for("login"))
    return render_template("register.html", form=form)

if __name__ == '__main__':
    app.run(debug=True)

【问题讨论】:

  • 在您的帖子中包含完整的堆栈跟踪。
  • 查看网络服务器的日志。

标签: python flask server


【解决方案1】:
@app.route('/')
def myfun():
  return render_template('index.html')
@app.route('/index')
def index():
   return render_template('registration.html')

1.首先你必须返回一个模板。

2.我的建议是使用 sqlalchemy 连接数据库时很容易对错误进行排序。

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 1970-01-01
    • 2014-03-08
    • 2021-06-10
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多