我是Flask的新手,我正在尝试制作一个简单的注册页面。这是代码 -
{% extends 'layout.html' %}
{% block body %}
<div class="container">
<form method="post" action="{{ url_for('signup') }}">
<label for="user">Username </label>
<input type="text" id="user" name="user" onblur='NameCheck()'>
<i id='acceptIC' class="fas fa-check-circle"></i>
<label for="pas">Password </label>
<input type="password" id="pas" name="pas">
<label for="mail">Email ID </label>
<input type="email" id="mail" name="mail">
<button type="submit">Signup</button>
</form>
</div>
{% endblock %}
我希望一旦失去焦点就会在用户名旁边显示一个字体真棒图标,如果用户名可用(MongoDB中的数据库),则此图标为绿色,如果不可用,则为红色。
这可以通过在你的onBlur调用一个javascript函数中使用flask-socketio来实现 -
function NameCheck(data) {
if (data !== '') {
sock.emit('name_check', data);
sock.on('responded', function (msg) {
if (msg) {
document.getElementById('acceptIC').style['display'] = 'flex';
}
});
}
}
在烧瓶socketio电话
@socketio.on('name_check')
def handle_name(data):
socketio.emit('responded', Mongo.checkUser(data))
哪里
Mongo.checkUser(data)
是你所需要的功能。返回bool值