python - 使用 AJAX 进行验证以确保相同的电子邮件不会放入数据库中
问题描述
我正在尝试查询数据库,jQuery for validation
以确保在我的应用程序中没有两次使用相同的电子邮件。
1) 我不确定jQuery is correct
. 我知道它正在从我使用选择器定位的输入中获取信息,但是我在查看发送到服务器的对象内部的内容时遇到问题。
2) 信息被发送到server is causing a 400 error.
400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
-我想知道如何访问字典中传递的值....request.body.keys() and request.body.values()
没有用。我以为我传递的字典.ajax() method
会是request.body
- 我是否通过将.serialized()
放在实际输入而不是整个表单上来传递正确的数据?我.serialize() method
最初在表单上使用了 id 。
- 是我的 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 错误,唯一打印的是不可变字典。
400 错误请求:浏览器(或代理)发送了此服务器无法理解的请求。
解决方案
打印的不可变字典是因为您正在打印表单对象,而不是值。要获得实际值,请使用:request.form.get('email')
.
另外,只要注意到你正在设置value_ = data
,数据还没有设置,我想你想做value_ = request.form.get('email')
:
推荐阅读
- android - 在 Android Room 中列出模型
- python - DataFrame.hist() 形状看起来不正确
- postgresql - Vuejs/Posgres - 单击按钮时,我想在 db postgresql 中保存一个值
- python-3.x - 从熊猫中的嵌套字典中自动提取列
- php - Medoo.in / Foreach 循环 w/Smartyphp
- javascript - javascript将数组对象拆分为给定大小的对象数组
- python - PYthon ctypes 'TypeError' LP_LP_c_long 实例而不是 _ctypes.PyCPointerType
- flutter - Flutter 如何用数据添加 doc id
- python - talib.EMA() 返回 nan 值
- windows - 内存转储包括整个桌面的内存