Flask-SQLAlchemy(MySQL)之数据库创建和连接

2018-10-17  本文已影响147人  CP9

创建数据库

命令行方式

  1. 连接mysql:
mysql -u root -p
Enter password:******
  1. 创建数据库
create database 数据库名;
  1. 查询数据库
show databases;
  1. 删除数据库
drop database 数据库名;
  1. 选择某个数据库
 use 数据库名;

Flask-SQLAlchemy连接数据库

各个数据库URI.jpg
  1. 设置内置配置参数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)
  1. 在.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)
  1. echo设置为True表示开启生成所有的SQLAlchemy日志记录,创建引擎
  2. create_engine()并没有建立与DBAPI的连接
  3. 可以直接向数据库发出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

上一篇下一篇

猜你喜欢

热点阅读