您现在的位置是:首页 >技术教程 >Flask知识点2网站首页技术教程
Flask知识点2
简介Flask知识点2
1、flash()
get_flashed_messages() : 用来消耗flash方法中存储的消息
使用flash存储消息时,需要设置SECRET_KEY
flash 内部消息存储依赖了session
2、CSRF(Cross Site Request Forgery) 跨站请求伪造,指攻击者盗用你的身份发送恶意请求
CSRFProtect解决CSRF
<1>安装扩展包 flask-wtf
from flask_wtf.csrf import CSRFProtect
<2>设置SECRET_KEY便于设置CSRF token:
app.config['SECRET_KEY'] ='ssddddaaddsa'
<3>创建CSRFProtect对象,保护app对象:CSRFProtect(app)
<4>在表单中设置csrf_token即可:
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
3、ORM 对象关系映射
优点:不在编写sql,无需关心数据库类型
缺点:性能有缺失
配置步骤:
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
app.app_context().push()
#配置数据库信息,这里是mysql
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:abin0033@127.0.0.1:3306/mydatabase'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
#是否显示底层的sql语句
app.config['SQLALCHEMY_ECHO'] = True
app.config['SECRET_KEY'] = 'abin'
#关联app
db = SQLAlchemy(app)
#编写模型类
class User(db.Model):
__tablename__ = "userinfo"
id = db.Column(db.Integer, primary_key=True)
userid = db.Column(db.String(50), nullable=False) #不能为空
password = db.Column(db.String(50), nullable=False)
if __name__ == "__main__":
#创建表
db.create_all()
#删除表
db.drop_all()
4、数据库的增删改
常见方法:
db.session.add(obj) #添加单个
db.session.add_all([obj1,obj2]) #添加多个
db.session.delete()#删除单个对象
db.session.commit()#提交会画
db.drop_all()#删除继承自db.Model所有表
db.create_all()#创建继承自db.Model所有表
db.session.rollback() #回滚
db.session.remove()#移除会话
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。