16-----BBS论坛
16.登录功能完成
(1)front/forms.py
class SigninForm(BaseForm): telephone = StringField(validators=[Regexp(r'1[3578]\d{9}', message='请输入正确格式的手机号码')]) password = StringField(validators=[Regexp(r'[0-9a-zA-Z_\.]{6,15}', message='请输入正确格式的密码')]) remember=StringField()
(2)config.py
FRONT_USER_ID = 'FFFF'
(3)front/views.py
class SigninView(views.MethodView): def get(self): return_to = request.referrer if return_to and return_to != request.url and return_to != url_for('front.signup') and safeutils.is_safe_url( return_to): return render_template('front/signin.html', return_to=return_to) else: return render_template('front/signin.html') def post(self): form = SigninForm(request.form) if form.validate(): telephone = form.telephone.data password = form.password.data remember = form.remember.data user = FrontUser.query.filter_by(telephone=telephone).first() if user and user.check_password(password): session[config.FRONT_USER_ID] = user.id if remember: session.permanent = True return restful.success() else: return restful.params_error(message='手机号或密码错误') else: return restful.params_error(message=form.get_error())
(4)front_signin.js
/** * Created by Administrator on 2018/6/9. */ $(function(){ $('#submit-btn').on('click',function(event){ event.preventDefault(); var telephone_input=$('input[name=telephone]'); var password_input=$('input[name=password]'); var remember_input=$('input[name=remember]'); var telephone=telephone_input.val(); var password=password_input.val(); var remember=remember_input.checked?1:0; zlajax.post({ 'url':'/signin/', 'data':{ 'telephone':telephone, 'password':password, 'remember':remember }, 'success':function(data){ if(data['code']==200){ var return_to=$('#return-to-span').text(); if(return_to){ window.location=return_to; }else{ window.location='/' } }else{ zlalert.alertInfo(data['message']); } } }); }); });
(5)signin.html
<script src="{{ static('front/js/front_signin.js') }}"></script>
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/10021041.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App