flask 链接mysql数据库 小坑

Posted zengxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask 链接mysql数据库 小坑相关的知识,希望对你有一定的参考价值。

#config.py


mysql_NAME = root
MYSQL_PASSWORD = zyms90bdcs
MYSQL_HOST = xxxx
MYSQL_POST = 3306
MYSQL_DBNAME = flask_sql
MYSQL_CHARSET = utf8

# SQLALCHEMY_DATABASE_URI = ‘mysql://:@:/?charset=‘.format(MYSQL_NAME,MYSQL_PASSWORD,
#                                                                      MYSQL_HOST,MYSQL_POST,
#                                                                      MYSQL_DBNAME,MYSQL_CHARSET)

SQLALCHEMY_DATABASE_URI = mysql://:@:/.format(MYSQL_NAME,MYSQL_PASSWORD,
                                                                     MYSQL_HOST,MYSQL_POST,
                                                                     MYSQL_DBNAME)

这是链接数据库文件的配置,如果你在models文件中创建了db表,并进行创建 (shell还是直接路由进行创建) create_all()

 

#models

import pymysql
from flask_sqlalchemy import SQLAlchemy

pymysql.install_as_MySQLdb()

db = SQLAlchemy()

def init_db(app):
    db.init_app(app)


class User(db.Model):
    __tablename__ = user

    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    u_name = db.Column(db.String(20),unique=True)
    u_id = db.Column(db.Integer,unique=True)

# 创建一个 User 的模型,数据库中创建一个 user 的表 

 

# views.py

from flask import Blueprint
from App.models import User, db

blue = Blueprint(base1,__name__)


@blue.route(/create_all/)
def create_all():

    db.create_all()

    return "DB create success"

 

 

很容易出现一个问题 

sqlalchemy.exc.InternalError: (InternalError) (1049, "Unknown database ‘dome‘") None None

 

有过学过mysql的都会知道,但基础不好的会遇到.

原因是

create_all()
这个函数只是创建表,并不创建数据





更新还有一个坑
当你开开心心完成了上述操作,再次打开(我的方式)创建表发型又出现问题了
ModuleNotFoundError
ModuleNotFoundError: No module named MySQLdb

看在明显是mysqldb 出现问题了,但是我们没有包叫mysqldb啊 只有mysql

终于在网上找到 可能是pymysql 出现问题

在models.py文件中  或者配置文件中也行

import pymysql
pymysql.install_as_MySQLdb()

ok

以上是关于flask 链接mysql数据库 小坑的主要内容,如果未能解决你的问题,请参考以下文章

flask怎样查询mysql并显示在页面上

JDBC 连接 MySQL 时碰到的小坑

Linux下安装MySQL以及一些小坑

win2016 配置IIS 和mysql5.7 迁移数据表的两个小坑

mysql 主从踩的一个小坑

轻量级Web框架Flask