繁体   English   中英

编码新手:尝试运行具有数据库连接的 flask web 应用程序时出现内部服务器错误

[英]Coding newbie: internal server error when trying to run a flask web app with database connection

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

这是我的代码

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)

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM