美文网首页
Flask-SQLAlchemy(MySQL)之数据库创建和连接

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

作者: CP9 | 来源:发表于2018-10-17 17:46 被阅读147次

    创建数据库

    命令行方式

    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

    相关文章

      网友评论

          本文标题:Flask-SQLAlchemy(MySQL)之数据库创建和连接

          本文链接:https://www.haomeiwen.com/subject/lturzftx.html