1.页面准备: (1)前端资源的导入:将准备好的页面添加到项目中,放到Public目录下(公共的页面样式.js.图片等资源) (2)添加登录的视图模板 将登录页面的视图放到Amin>View>Login>index.html中 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv=&q…
config form from wtforms import Form, StringField, IntegerFieldfrom wtforms.validators import Email, InputRequired, Length class LoginForm(Form): email = StringField(validators=[InputRequired(message='请输入邮箱'), Email(message='邮箱格式错误')]) password = Str…
装饰器,验证当前session中是否存在定义的user_id,没有就重定向到登录页 from flask import session, redirect, url_forfrom functools import wraps import config def login_required(func): @wraps(func) def inner(*args, **kwargs): return func(*args, **kwargs) if config.CMS_USER_ID in s…
html <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device…
用户名渲染,使用flask的g对象,在用户请求进来之后,触发视图函数之前,拿用户的信息,放到g对象里面 @bp.before_requestdef before_request(): """ 请求进入视图函数之前判断用户是否登录,若已登录,则将当前用户的信息添加到g对象里面 """ if config.CMS_USER_ID in session: user_id = session.get(config.CMS_USER_ID) user =…
定义一个宏,用于渲染static文件的时候,只需要传文件名就可以,上下两个“-”是解决渲染的时候源代码换行的情况 {% macro static(filename) -%} {{ url_for('static', filename=filename) }}{%- endmacro %} {% from 'common/_macros.html' import static %}<!DOCTYPE html><html lang="en"><head>…
数据库信息 DEBUG = TrueSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test'SQLALCHEMY_TRACK_MODIFICATIONS = False from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy() from datetime import datetimefrom exts import db class CMSUse…
模型 class CommentModel(db.Model): """ 评论 """ __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=…
实现方式 使用装饰器的形式,将权限判断加在视图上 声明接口需要什么权限,用户访问接口的时候,判断用户是否有此权限 权限判断,接收权限 def permission_required(permission): def outter(func): @wraps(func) def inner(*args, **kwargs): user = g.cms_user if user.has_permission(permission): return func(*args, **kwargs) else…
在base页加一个登录标识符 给加页面两个id,方便取值 js $(function () { //初始化ueditor var ue = UE.getEditor('editor', { 'serverUrl': '/ueditor/upload/', // 定制uedtior工具栏按钮 "toolbars": [ [ 'undo', //撤销 'redo', //重做 'bold', //加粗 'italic', //斜体 'source', //源代码 'blockquote',…