'''
https://www.encode.io/databases/
databases 为您提供了对一系列数据库的简单异步支持。
它使您可以使用功能强大的SQLAlchemy Core表达式语言进行查询,并提供对PostgreSQL,MySQL和SQLite的支持。
'''
# 安装
!pip install databases[mysql]
# Create a database instance, and connect to it.
from databases import Database
import config
database = Database(config.DATABASE_URL)
await database.connect()
# Create a table.
query = """
DROP TABLE IF EXISTS `test_user`;
CREATE TABLE `test_user` (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), score INT);
"""
await database.execute(query=query)
# Insert some data.
query = "INSERT INTO test_user (name, score) VALUES (:name, :score)"
values = [
{"name": "Daisy", "score": 92},
{"name": "Neil", "score": 87},
{"name": "Carol", "score": 43},
]
await database.execute_many(query=query, values=values)
# Run a database query.
query = "SELECT * FROM test_user"
await database.fetch_all(query=query)
# Fetch single row
query = "SELECT * FROM test_user WHERE id = :id"
await database.fetch_one(query=query, values={"id": 1})
# Close all connection in the connection pool
await database.disconnect()