- 使用manage.py作为项目入口,使用git管理源代码
- 开启debug模式
- mysql和redis的集成:flask-sqlalchemy,redis
- 脚本管理器和数据库迁移集成:flask-script,flask-migrate
- 开启CSRF保护:flask-wtf CSRFProtect类
- session配置:flask的session, flask-session Session类
- 工厂模式实现不同环境下的不同配置
- 使用RESTfull规范URI和接口,及资源型管理请求GET,POST,PUT,DELETE
- 蓝图划分接口版本,需生成蓝图对象,蓝图注册路由,app注册蓝图
- 使用current_app调用send_static_file()实现静态文件的加载
- 自定义路由转换器使一个视图接受多种静态文件的访问,如icon,index.html,XX.html
- 使用房屋设施表中间表 来解决房屋和设施多对多关系的,变成2个一对多,便于查询
- 使用captcha生成图片验证码并响应,generate_captcha, 需修改头部文件类型
- 使用redis存储图片验证码,键为唯一标识uuid,值为图片text
- 使用日志管理源代码,设置相关日志等级,嵌入工厂模式中
- 手动生成6位短信验证码,randint(0,999999)
- 使用云通讯发送短信,REST , sendTemplateSMS
- 使用redis存储短信验证码,键为唯一标识uuid,值为短信验证码
- 在响应的html页面都写入cookie,键为csrf_token,值为generate_csrf()返回值
- 前端发送非get请求,在请求头带上csrf_token, X-CSRFToken
- 获取json数据,如果确定为json,可以requests.json, 还有get_json(),data等
- 调用generate_password_hash对密码加密,及check_password_hash校验密码
- 把用户信息写入session保持用户状态,session['']=
- 数据库保存数据:db.session.add(obj),db.session.commit(),db.session.rollback()
- 注册逻辑也保持状态,实现注册即登录
- 模型类封装to_dict方法生成jsonify能识别的字典或字典列表
- 集成七牛云SDK并封装上传图片的工具方法,安装qiniu;Auth,upload_token,put_data
- 数据库保存的是七牛云图片的唯一标识,然后响应图片记得加上七牛云域名前缀
- 发送ajax三种方式,$.get,$.ajax,$(this).ajaxSubmit()
- 自定义判断用户是否登录的装饰器,并使用g变量存储用户id,加@functools.wraps(func)
- 退出登录即清除session,session.pop()
- 使用Art-template用js渲染html:template('script_id',{'YY':response.XX})
- js知识:$(this).serializeArray.map(function(){...}) 获取表单所有要提交的数据
- 根据用户不同,选择性显示’立即预定‘按钮 login_user_id =session.get('user_id',-1)
- 城区信息缓存,根据str类型存储,存入是list,获取是str,需eval(),不能有return
- 由于房屋搜索列表页条件筛选多,先获取BaseQuery对象,再多重判断过滤获取房屋信息
- 翻页:BaseQuery对象的paginate(),参数1第几页,2一页几个,3False
- 上面方法返回值paginate对象,items属性获取当前页所有模型对象,pages获取总页数
- 由于房屋预定有开始和结束时间,需根据已接单的订单进行时间的过滤不查询和展示。
- 由于我的订单和客户订单逻辑一样,使用url参数role=A/B来唯一标识界面的身份信息
- redis使用事务:pi=strict_redis.pipeline(),开启pi.multi();执行pi.execute()
- 接单和拒单由于逻辑一样,使用url参数action=A/B来唯一标识订单处理状态
flask项目
最新推荐文章于 2024-11-05 23:42:06 发布