【问题标题】:UTF-8 chars in WTForms FlaskWTForms Flask 中的 UTF-8 字符
【发布时间】:2017-07-25 08:11:58
【问题描述】:

我是 Flask 的新手,所以我希望这不是一个愚蠢的问题。我使用烧瓶 wtforms 将数据发送到本地数据库(MySQL)。我需要使用 UTF-8 符号,例如(č、ć、đ、š 等)。我也尝试更改数据库中的编码,但没有奏效。有什么推荐的吗,不胜感激,谢谢! :)

class RegistrationForm(Form):
    username = StringField('Username', validators=[DataRequired(), Length(min=2, max=25)])
    lozinka = StringField('Lozinka', validators=[DataRequired(), Length(min=5, max=25)])
    email = StringField('Email', validators=[DataRequired(), Length(min=2, max=25)])
    ime = StringField('Ime', validators=[DataRequired(), Length(min=2, max=25)])
    prezime = StringField('Prezime', validators=[DataRequired(), Length(min=2, max=25)])
    tracking = StringField('Tracking', validators=[DataRequired(), Length(min=2, max=1000)])

@app.route('/register/', methods=["GET","POST"])
def register_page():
    form = RegistrationForm(request.form)
    if request.method == "POST":
        username = form.username.data
        lozinka = sha256_crypt.encrypt(str(form.lozinka.data))
        email = form.email.data
        ime = form.ime.data
        prezime = form.prezime.data
        tracking = form.tracking.data

        c, conn = connection()
        c.execute("INSERT INTO ucenici VALUES (NULL, %s, %s, %s, %s, %s, %s)",(escape_string(username), escape_string(lozinka), escape_string(email), escape_string(ime), escape_string(prezime), escape_string(tracking)))

        c.execute("SELECT * FROM ucenici")
        data = c.fetchall()
        print(data)
        conn.commit()
        c.close()
        conn.close()
        return "unio sam"

    return render_template("register.html", form=form)

register.html 文件如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>U NOS, U BAZU</title>
</head>
<body>
<div class = "container">
    <h4>Register</h4>
    <br>
    {% from "_formhelpers.html" import render_field %}
    <form method=post action="/register/">
        <dl>
            {{render_field(form.username)}}
            {{render_field(form.lozinka)}}
            {{render_field(form.email)}}
            {{render_field(form.ime)}}
            {{render_field(form.prezime)}}
            {{render_field(form.tracking)}}

        </dl>
        <p><input type=submit value=Register></p>
    </form>

    {% if error %}
    <p class="error"><strong>Error:</strong>{{error}}</p>
    {% endif %}

</div>
</body>
</html>

谢谢!

【问题讨论】:

  • 您要解决的问题是什么?
  • 对不起,如果我不清楚,我想在“Paško”而不是“PaÅ¡ko”这样的基础中拥有数据

标签: python utf-8 flask wtforms flask-wtforms


【解决方案1】:

Python Requests encoding POST data 可能重复

尝试在请求的标头中设置字符集

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多