随笔分类 - flask-web开发
摘要:在用户模型下定义属性和方法,用于判断用户的权限 @propertydef permissions(self): """ 返回用户拥有的所有权限 """ if not self.roles: # 判断用户是否绑定角色 return 0 all_permissions = 0 for role in s
阅读全文
摘要:模型与权限关系映射表 class CMSPersmission: """ 权限管理映射 """ # 255的二进制方式来表示 1111 1111 ALL_PERMISSION = 0b11111111 # 1. 访问者权限 VISITOR = 0b00000001 # 2. 管理帖子权限 POSTE
阅读全文
摘要:这里采用把验证码放到memcached中,所以封装一个memcached的操作 import memcachecache = memcache.Client(['127.0.0.1:11211'], debug=True)def set(key, value, timeout=60): return
阅读全文
摘要:安装:pip install flask-mail 官方文档:https://pythonhosted.org/Flask-Mail/ 邮箱配置 MAIL_SERVER = 'smtp.qq.com' # 邮箱服务器地址MAIL_PORT = 465 # 端口MAIL_USE_TLS = True
阅读全文
摘要:在base.css中加一个全局的css控制宽度 .form-container{ width: 300px;} 视图 class ResetEmailView(views.MethodView): decorators = [login_required] def get(self): return
阅读全文
摘要:在base模板中引用 在修改密码的js中使用 $(function () { $('#submit').click(function (evnet) { evnet.preventDefault(); //阻止默认的提交表单事件 var oldpwdElement = $("input[name='
阅读全文
摘要:实现效果 css body.stop-scrolling { height: 100%; overflow: hidden; }.sweet-overlay { background-color: black; /* IE8 */ -ms-filter: "progid:DXImageTransfo
阅读全文
摘要:鉴于flask-restful用起来太麻烦,这里自定义json统一返回格式和内容 from flask import jsonifyclass HttpCode: """ 定义一些约定好的业务处理状态 """ ok = 200 # 业务处理成功 unautherror = 401 # 没有授权 pa
阅读全文
摘要:定义一个基类form,用于获取错误信息 from wtforms import Formclass BaseForm(Form): def get_error(self): # a = {'aaa': [xxx], 'bbb': [www]} a.popitem()[1][0]=xxx messag
阅读全文
摘要:顺便实现ajax提交的时候默认提交csrf_token var http = { 'get':function (args) { args['method'] = 'get'; this.ajax(args); }, 'post':function (args) { args['method'] =
阅读全文
摘要:加上CSRF防御 修改密码页面 视图 class ResetPwd(views.MethodView): decorators = [login_required] # 校验登录状态 def get(self): return render_template('cms/cms_resetpwd.ht
阅读全文
摘要:模板抽取,将公共的页面抽出来作为模板 {% from 'common/_macros.html' import static %}<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title> {% block title %
阅读全文
摘要:用户名渲染,使用flask的g对象,在用户请求进来之后,触发视图函数之前,拿用户的信息,放到g对象里面 @bp.before_requestdef before_request(): """ 请求进入视图函数之前判断用户是否登录,若已登录,则将当前用户的信息添加到g对象里面 """ if confi
阅读全文
摘要:定义一个宏,用于渲染static文件的时候,只需要传文件名就可以,上下两个“-”是解决渲染的时候源代码换行的情况 {% macro static(filename) -%} {{ url_for('static', filename=filename) }}{%- endmacro %} {% fr
阅读全文
摘要:装饰器,验证当前session中是否存在定义的user_id,没有就重定向到登录页 from flask import session, redirect, url_forfrom functools import wrapsimport configdef login_required(func)
阅读全文
摘要:config form from wtforms import Form, StringField, IntegerFieldfrom wtforms.validators import Email, InputRequired, Lengthclass LoginForm(Form): email
阅读全文
摘要:html <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" cont
阅读全文
摘要:数据库信息 DEBUG = TrueSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test'SQLALCHEMY_TRACK_MODIFICATIONS = False from flask_sqlalch
阅读全文
摘要:目录结构 cms模块 from flask import Blueprintbp = Blueprint('cms', __name__, url_prefix='/cms')@bp.route('/')def index(): return 'cms index' from .views impo
阅读全文
摘要:安装:pip install redis 连接 字符串操作 插入值 获取 删除值 列表操作,更多操作见源码 添加 获取 集合操作,更多操作见源码 哈希操作,更多操作见源码 事务操作:cache.pipeline(),更多操作见源码 发布与订阅:如用redis异步发邮件 监听 发布 再看监听 过滤数据
阅读全文

浙公网安备 33010602011771号