zoukankan      html  css  js  c++  java
  • flask SQLAlchemy

    介绍

    SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果

    安装

    安装flask-sqlalchemy

    pip install flask-sqlalchemy

    安装数据库驱动

    pip3 install PyMySQL

    使用

    一、初始化和设置数据库信息

    ①、flask 入口文件,test_flask.py

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy   #导入sqlalchemy,按住ctrl 点击 flask_sqlalchemy 可查看源码
    import config                   #导入下面的config.py,添加配置信息
    
    #初始化sqlalchemy app = Flask(__name__) app.config.from_object(config)    #添加congfig的配置 db = SQLAlchemy(app)          #初始化对象,创建映射 db.create_all()            #验证数据库连接信息是否正确,启动程序没有报错,则表示正确而 @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='192.168.132.130',debug=True)

    ②、config.py

    #dialect+driver://<username>:<password>@<host>:<port>/<dbname>[?<options>]
    
    DIALECT = 'mysql'
    DRIVER = 'pymysql'
    USERNAME = 'root'
    PASSWORD = 'root'
    HOST = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'flask_test'
    
    #固定名称 SQLALCHEMY_DATABASE_URI
    = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = False

    二、使用SQLAlchemy 创建模型与表的映射

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    import config
    
    #初始化配置 app
    = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) #传统创建表的方法 # create ta_article( # id int primary_key_autoincrement, # title varchar(100) not null, # content text not null # ) #使用slqalchemy创建表的方法 class Article(db.Model): __tablename__ = 'article' #指定表名
    # 字段必须为db.Cloumn()的数据类型,两个True表示为主键和自增 id
    = db.Column(db.Integer,primary_key=True,autoincrement=True) title = db.Column(db.String(100),nullable=False) #指定字符串长度为100,nullable表示可以为空,Fasle表示不能为空
       content = db.Column(db.Text,nullable=False) #将表名映射到数据库,启动服务就会创建这个表 db.create_all() @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='192.168.132.130',debug=True)

     

    三、SQLAlchemy增删改查

    from flask import Flask,session
    from flask_sqlalchemy import SQLAlchemy
    import config
    
    app = Flask(__name__)
    app.config.from_object(config)
    db = SQLAlchemy(app)
    
    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()
    
    @app.route('/')
    def hello_world():
        #添加数据
        articel1 = Article(title='aa',content='bb')   #id 为自增字段,这里不用填写
        db.session.add(articel1)      #flask-SQLAlchemy 的数据操作由session操作,这里表示提交到session中,并没有提交到数据库
        
       #事物操作需要提交,写入到数据库 db.session.commit() #查询操作 传统查询操作
    select * from xxx where xx = xx; result = Article.query.filter(Article.title =='aa').first()   #表示取第一条数据,如果去掉first()查询到的数据为对象 print (result[0].title,result[0].content)       #默认的查询结果(result)为对象,result[0]结果为一个元组 #修改操作 ,先查询,在修改,在提交 result = Article.query.filter(Article.title =='aa').first() result.title = 'aaaa' db.session.commit() #删除操作,查询,删除,提交 result = Article.query.filter(Article.title == 'aa').first() db.session.delete(result) db.session.commit() return 'Hello World!' if __name__ == '__main__': app.run(host='192.168.132.130',debug=True)

    其他

  • 相关阅读:
    Python疑难杂症:SyntaxError: NonASCII character Python中文处理问题
    程序员健康大全透视身体24小时工作时间表
    ConnectionTimeout,CommandTimeout和executionTimeout的理解
    google map api 与jquery结合使用(3) 图标样式,使用xml和异步请求【转帖】
    新手8周跑步训练计划
    57商城温州地区最大本土网上超市
    7 款仿照 Sinatra 思路的 .NET 框架
    线程池的原理和连接池的原理
    免费网站模版:一个黑色系的公司网站模版(flash幻灯)
    深入浅出REST
  • 原文地址:https://www.cnblogs.com/FRESHMANS/p/8448504.html
Copyright © 2011-2022 走看看