python - 使用 AJAX 进行验证以确保数据库中没有放置相同的电子邮件

标签 python jquery mysql flask partials

我正在尝试使用 jQuery 进行验证 查询数据库,以确保同一电子邮件不会在我的应用程序中使用两次。

1) 我不确定 jQuery 是否正确。我知道它正在从我使用选择器定位的输入中获取信息,但我在查看发送到服务器的对象内部的内容时遇到问题。

2) 发送到服务器的信息导致 400 错误。 400 Bad Request:浏览器(或代理)发送了该服务器无法理解的请求。

-我想知道如何访问字典中传递的值...... request.body.keys() 和 request.body.values() 不起作用。我认为我通过 , .ajax() 方法 传递的字典将是 request.body

中的内容

-我是否通过将 .serialized() 放在实际输入而不是整个表单上来传递正确的数据? 我最初在表单的 id 上使用 .serialize() 方法

-这是我的 MySQL 查询还是我在发送查询之前如何将字典传递给字符串?我检查了 MySQL,它用我编写的代码查询了电子邮件。

-我的逻辑是否可以将部分内容插入到 div 内部?我不确定部分是否正确。

{% if found == True %}
<p class="error-email">Email has been taken.</p>
{% endif %}
{% if found == False %}
<p class="success-email"> This email is available</p>
{% endif %}

-这是部分 HTML 代码

 <div id="email"></div>
 <input type="email" name="email" placeholder="email" id="email-form">

*这是 HTML - div 用于当按键激活异步代码时的部分

@app.route('/check', methods=["POST"])
def check_avaliability_of_email():
    found = False
    mysql = connectToMySQL('flask_canidate_survey_app')
    query = 'SELECT email FROM flask_canidate_survey_app.users WHERE users.email = "%(check_value)s"'
    print('AJAX_DATA:', request.form.get('email'))
    value_ = data
    check_value = {'user': value_}
    result = mysql.query_db(query, data)
    if result:
        found = True
    return render_template('/partials/validation_email.html', found=found)

*服务器端代码(python)

$(document).ready( function() {
    $('#email-form').keyup(function() {
        var emailData = $('#email-form').serialize()
        $.ajax({
            method: "POST",
            url: "/check",
            data: emailData
        })
        .done(function(res) {
            $('#email').html(res)
        });
    });
});

这是 js/jQuery AJAX 调用 结果是:

我收到了之前放置的 400 错误,唯一打印的是 Immutable Dictionary。

400 错误请求:浏览器(或代理)发送了该服务器无法理解的请求。

最佳答案

打印的不可变字典是因为您打印的是表单对象,而不是值。要获取实际值,请使用:request.form.get('email')

此外,只需注意您正在设置 value_ = data,其中数据尚未设置,我想您想要执行以下操作: value_ = request.form.get( '电子邮件')

关于python - 使用 AJAX 进行验证以确保数据库中没有放置相同的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56465855/

相关文章:

python - 找到一个四位数的数字,其平方是 8 位,最后 4 位是原始数字

python - 艰难地学习 Python 示例 5

php - 如何开始使用 php/mysql/jquery 中的饮食记录脚本

mysql - 高级 MySQL LEFT JOIN 查询的问题

mysql - 如何使用 group by 而不丢失非空详细信息

python - 范围和随机

python - Pystan 后验不确定区间

jquery - 使用 jquery 设置输入元素的属性

javascript - jquery 在动画的开始和结束时做一些事情

javascript - Laravel/Javascript Web 表单捕获应用程序