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>

最新文章

  1. CentOS(5.8/6.7)linux生产环境若干优化实战
  2. 在Xcode5中修改整个项目名
  3. 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  4. wpf listbox 内的内容显示问题,需要设置里面的itemsPresenter
  5. zTree学习文档和DEOM
  6. vim - Simple commands to remove unwanted whitespace
  7. django rest framework csrf failed csrf token missing or incorrect
  8. clearfix清除浮动进化史
  9. excel数据导入SQLite数据库
  10. SpringMVC+MyBatis(最新)
  11. 事务回滚后,自增ID仍然增加
  12. 每个极客都应该知道的Linux技巧
  13. java Double保留小数点位数
  14. wchar_t * 与 char * 互相转换小记
  15. Centos下wget下载整个网站,或者目录全部文件
  16. 超级密码 hdu1226 bfs
  17. crm踩坑记(三)
  18. LABjs、RequireJS、SeaJS 哪个最好用?为什么?- 玉伯的回答
  19. 用 k8s 管理机密信息 - 每天5分钟玩转 Docker 容器技术(155)
  20. [LeetCode] Erect the Fence 竖立栅栏

热门文章

  1. symfony简单的博客练习,熟悉具体开发流程
  2. Random Erasing Augmentation(REA)
  3. tp5 整合 个推
  4. GitHub的简单使用记录
  5. iOS异常捕获和处理
  6. SQL语句练习题【主供自己学习、记忆】
  7. Linux内核内存管理架构
  8. javascript 数据类型 -- 分类
  9. 蛤?你要用html做游戏?(笔记版)
  10. c# Exchange 收件箱获取。