flask学习第六节flask

    xiaoxiao2022-07-07  234

    一、SQLAlchemy的初始化连接

    提醒:在你的虚拟环境中安装(也就是你的主app所使用的python解释器)

    1.首先安装数据库的中间件驱动

    这里小编安装的是pymsql作为驱动,你也可以安装mysqldb或者其他的驱动模块

    安装驱动命令:pip install PyMySql -i https://pypi.douban.com/simple

    2.安装flask_sqlalchemy(一套ORM框架,orm也就是模型关系映射)

    pip install flask_sqlalchemy -i https://pypi.douban.com/simple

    3.初始化SQLAlchemy对象

    4.在config配置文件中,增加相关配置信息 大写字母不要自行更改,否则app.config.from_object()可能找不到对应的值

    # dialect+driver://username:password@host:port/database DIALECT = "mysql" # 需要连接数据库的名称比如mysql ,oracle等 DRIVER = "pymysql" # 连接数据库的中间件 比如dbmysql mysqldb等 USERNAME = "root" # 连接数据库的账号 PASSWORD = "xxxx" # 数据库密码 HOST = "127.0.0.1" # 数据库地址 PROT = "3306" # 数据库端口号 DATABASE = "a_12306" SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PROT, DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = False

    5.测试一下数据库连接

    好我们发现正常启动,木有报错

    现在我们故意把密码修改错误 在试一次 

    好果然  报错了,这就说们我们初始化连接成功了

    二、对数据库的操作部分

    1.初始化一个数据库的表模型  比如新建一个数据库表

    注意点:一定要继承db.Model这个类,db.String(这个值必须指定),

    # 创建模型和表的映射 新增一个表 class Article(db.Model): __tablename__ = "article" # 表名,如果不指定则取类名的小写字母 id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) # 这句代码如果注释不会新增一个表 db.create_all()

    2.数据库表新增数据

    注意:其中这个表有个id不过是自增长的 我们可以省略

    # 数据库插入一条数据 article = Article(title="西方文学", content="学习西方知识") db.session.add(article) db.session.commit()

    3.查询数据

    # 从数据库查询数据 result = Article.query.filter(Article.title == "西方文学1") if result.first() is None: print("查询到的结果为空") else: for info in result.all(): print(info.id) print(info.title) print(info.content)

    4.修改数据

    # 修改# # 1、先把你需要修改的数据 查出来 result = Article.query.filter(Article.id == "1").first() # 2、把这条数据,你需要修改的地方进行修改 result.title = "东方文学" # 3、做事务的提交 db.session.commit()

    5.删除数据

    # 删除 # 1、需要把删除的数据查询出来 result = Article.query.filter(Article.id == "1").first() # 2、把这个条数的数据删除掉 db.session.delete(result) # 3、做事务的提交 db.session.commit()

     

    最新回复(0)