创建数据库
命令行方式
- 连接mysql:
mysql -u root -p
Enter password:******
- 创建数据库
create database 数据库名;
- 查询数据库
show databases;
- 删除数据库
drop database 数据库名;
- 选择某个数据库
use 数据库名;
Flask-SQLAlchemy连接数据库
- 设置内置配置参数
SQLALCHEMY_DATABASE_URI
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', '')
db = SQLAlchemy(app)
- 在.env中保存数据库连接的隐私数据
DATABASE_URL=mysql+pymysql://root:123456@localhost:3306/forum?charset=utf8
验证是否设置数据库URI成功
1. C:\Users\woshi\PycharmProjects\demo01>pipenv shell
2. (demo01-f6WazQPd) C:\Users\woshi\PycharmProjects\demo01>flask shell
3. >>> from app import db
>>> db
SQLAlchemy连接数据库
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/forum?charset=utf8", echo=True)
- echo设置为True表示开启生成所有的SQLAlchemy日志记录,创建引擎
- create_engine()并没有建立与DBAPI的连接
- 可以直接向数据库发出SQL
connection = engine.connect()
result = connection.execute("select username from users")
for row in result:
print("username:", row['username'])
connection.close()
Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
由于mysql数据库默认的编码是:Latin1,要想支持中文需要修改为gbk/utf8的编码格式。
解决方法一
mysql> set character_set_client=utf8 ;
mysql> set character_set_connection=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_results=utf8 ;
mysql> set character_set_server=utf8 ;
mysql> set character_set_system=utf8 ;
注意:此种方式只在当前状态下有效,当重启数据库服务后失效。
解决方法二
按照示例修改mysql安装目录下的my.ini