zoukankan      html  css  js  c++  java
  • Flask与Mysql数据库建立连接

    该开始学习Flask,接触到数据库方面,记录一点儿笔记,希望有用。

    环境:python3.7.7,flask1.1.2

    与数据库建立联系,需要在自己的虚拟环境中pip install :flask-script,pymysql,flask-sqlalchemy,flask-imgrate(4个库)

    1.Flask-Script扩展提供向Flask插入外部脚本的功能,内置命令shell和runserver,也可以自定义。在Flask工程中,当在app.py文件中创建好app对象后,要用manager来包裹:

    #app.py文件
    from flask_script import Manager
    manager=Manager(app=app)#创建app对象后,用manager包裹
    manager.run()#在main函数中,运行程序

    2.flask-sqlalchemy提供了SQL工具包及对象关系映射(ORM)工具

    #1.在settings.py文件中配置
    SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:root@127.0.0.1:3306/flaskday05'#访问的数据库+用的驱动://数据库的用户名:密码@服务器地址:端口号/数据库
    SQLALCHEMY_TRACK_MODIFICATIONS=False
    SQLALCHEMY_ECHO=True#调试模式
    #2.在exts包的__init__.py文件中引入外部工具包
    from flask_sqlalchemy import SQLAlchemy
    db=SQLAlchemy()#创建了db数据库对象
    #3.在总蓝图apps的__init__.py文件中将db对象与app对象关联起来
    from exts import db
    db.init_app(app=app)

    3.flask-migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。

    #在app.py文件中,当创建完app对象之后
    from flask_migrate import Migrate, MigrateCommand
    migrate=Migrate(app=app,db=db)#建立app影响数据库的映射
    manager.add_command('db',MigrateCommand)#将命令交给manager管理

    4.在各蓝图中创建模型(类)时,要用到db的model

    #在model.py文件中
    from exts import db
    class User(db.Model):

    5.将创建好的模型(自定义的类)导入到app.py文件中

    from apps.user.models import User

    6.使用terminal运行pytho:

    初始化(一个项目只需要初始化一次,用来生成migrations文件夹)python app.py db init

    更新版本(每次修改后要运行,用来在versions文件中生成最新的版本py文件)python app.py db migrate

    数据库同步(每次修改要运行,用来将最新版本的内容更新到数据库上)python app.py db upgrade

    删除时:python app.py db downgrate 并删除版本文件

    Flask-Bootstrap是一个简化在Flask项目中集成前端开源框架Bootstrap过程的Flask扩展。使用Bootstrap可以快速的创建简洁、美观又功能全面的页面。
    pip install flask-bbotstrap
    内置的block
    {% block title%}首页{%endblock}
    {% block navbar%}{%endblock}
    {% block content%}{%endblock}
    {% block styles%}{%endblock}
    {% block scripts%}{%endblock}
    {% block head%}{%endblock}
    {% block body%}{%endblock}

  • 相关阅读:
    GMM的EM算法
    SQL Server 有关EXCEPT和INTERSECT使用
    nginx.conf 完整的集群配置
    一些建议方案猿简历
    漫游Kafka实战篇clientAPI
    iPhone发展【一】从HelloWorld开始
    SpringMVC+Spring3+Hibernate4开发环境的搭建
    tar.gz文件命名和压缩解压方法
    贪心算法(Greedy Algorithm)最小生成树 克鲁斯卡尔算法(Kruskal's algorithm)
    微软将彻底改变Windows发布方式
  • 原文地址:https://www.cnblogs.com/Turing-dz/p/13170115.html
Copyright © 2011-2022 走看看