后台逻辑

首先进行表单验证, 编辑front.froms.py

...
class SignInForm(BaseForm):
telephone = StringField(validators=[Regexp(r'1[35678]\d{9}', message='手机号码格式错误')])
password = StringField(validators=[Length(5, 30, message='密码格式错误')])
remember = StringField()

在config.py中配置一个用作保存前台session的常量

FRONT_USER_ID = 'WFQQ132FEVFW'

然后写视图了,编辑front.view.py

...
import config
from .forms import SignInForm class SignInViews(views.MethodView):
def get(self):
return_to = request.referrer
if return_to and return_to != request.url and safeutils.is_safe_url(return_to):
return render_template('front/front_signin.html', return_to=return_to)
return render_template('front/front_signin.html') def post(self):
signin_form = SignInForm(request.form)
if signin_form.validate():
telephone = signin_form.telephone.data
password = signin_form.password.data
remember = signin_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 xjson.json_success('登录成功')
else:
return xjson.json_param_error('手机号或密码错误')
else:
return xjson.json_param_error(signin_form.get_error()) bp.add_url_rule('/signin/', view_func=SignInViews.as_view('signin'))  

前端逻辑

在static/front/js下新建个js文件front_signin.js(获取注册按钮,配置它的点击事件)

$(function(){
$("#submit-btn").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; //如果有选择返回1否则返回0 bbsajax.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{
xtalert.alertInfo(data['message']);
}
}
});
});
});

把front_signin.js引入到front_signin.html中

{% block head %}
<script src="{{ url_for('static', filename='front/js/front_signin.js') }}"></script>
{% endblock %}

把front_signbase中的front_signup.js引入去掉,在front_signup.html中引入它

{% block head %}
<script src="{{ url_for('static', filename='front/js/front_signup.js') }}"></script>
{% endblock %}

最新文章

  1. 查看死锁 的存储过程 ,工具存储过程 sp_who_lock
  2. iOS开发如何学习前端
  3. office openxml学习(一)
  4. java 19 -14 File类的判断并输出案例
  5. beta版本项目冲刺
  6. grunt &lt;% %&gt;模板和使用配置文件
  7. QT Creator 代码自动补全快捷键设置
  8. 如何设置EditPlus的默认编码utf-8方式
  9. Directx 3D编程实例:绘制可变速旋转的三角形
  10. Android让你的Toast变得炫酷
  11. Java:从面试题“i++和++i哪个效率高?&quot;开始学习java字节码
  12. sgu102 Coprimes
  13. iOS 通讯录空格
  14. Collections类解析
  15. 一行代码实现FMDB的CURD操作
  16. springBoot+ vue+ Element-ui实现合并多图上传(一次请求多张图片)
  17. 吴裕雄 python深度学习与实践(9)
  18. 第三章&#160;列表(a)接口与实现
  19. 用 setMessage 方法灵活复用 UIAlertView
  20. GridControl 之 BandedGridView

热门文章

  1. 【BZOJ3998】弦论 [SAM]
  2. 微信小程序提示框
  3. MSSQL DBcheck
  4. feign hystrix 线程池伸缩控制
  5. $.on方法与$.click()的区别
  6. python中正则用法举例
  7. 有向有权图的最短路径算法--Dijkstra算法
  8. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week1 Introduction to deep learning课堂笔记
  9. 448D - Codeforces
  10. FISCO-BCOS平台共识