#config.py

MYSQL_NAME = 'root'
MYSQL_PASSWORD = 'zyms90bdcs'
MYSQL_HOST = 'xxxx'
MYSQL_POST = ''
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()

或者在

MYSQL_NAME = 'root'
MYSQL_PASSWORD = 'zyms90bdcs'
MYSQL_HOST = 'xxxxx'
MYSQL_POST = ''
MYSQL_DBNAME = 'flask_sql'
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(MYSQL_NAME,MYSQL_PASSWORD,
MYSQL_HOST,MYSQL_POST,
MYSQL_DBNAME) app.config['SQLALCHEMY_DATABASE_URI'] = config.SQLITE_URI

在mysql路径中增加一个驱动 +pymsql  字段

sqlite 不需要

flask 链接mysql数据库 小坑的更多相关文章

  1. Python学习笔记9-Python 链接MySql数据库

    Python 链接MySql数据库,方法很简单: 首先需要先 安装一个MySql链接插件:MySQL-python-1.2.3.win-amd64-py2.7.exe 下载地址:http://dev. ...

  2. Tomcat通过JNDI方式链接MySql数据库

    原文:Tomcat通过JNDI方式链接MySql数据库 拷贝MySQL的JDBC驱动到Tomcat的lib路径下 配置全局数据源或者单个Web应用的局部数据源 局部数据源 在Tomcat的conf/C ...

  3. C# 链接MySql数据库

    C# 链接MySql数据库只得注意的几点: 1.C#链接MySql数据库要在网上下载一个mysql-connector-net-6.0.4-noinstall.rar  这里面放的都是一堆dll .将 ...

  4. 写给小白的JAVA链接MySQL数据库的步骤(JDBC):

    作为复习总结的笔记,我罗列了几个jdbc步骤,后边举个简单的例子,其中的try块请读者自行处理. /* * 1.下载驱动包:com.mysql.jdbc.Driver;网上很多下载资源,自己找度娘,此 ...

  5. Java链接MySQL数据库的用配置文件和不用配置文件的代码

    1.利用配置文件(db.properties)链接MySQL数据库 package tool; import java.io.FileInputStream;import java.sql.Conne ...

  6. python3+Flask 链接MySQL 时,提示“No module named MYSQLdb”

    python3+flask 链接Mysql时提示“No module named MYSQLdb” 解决: pip install mysqlclient

  7. SQLServer 远程链接MySql数据库详解

    SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...

  8. Java基于jdbc链接mysql数据库步骤示列

    用JDBC来链接MYSQL数据库,基本步骤都大同小异,只不过不同的数据库之间的URL地址有些不同.其基本步骤可分为以下几点: 1.加载相应的数据库的JDBC驱动程序. 2.利用驱动管理器DriverM ...

  9. jmeter链接mysql数据库

    一.下载与MySQL对应的jar包 1.1.查询MySQL的版本, 命令语句 :SELECT VERSION(); 1.2.MySQL官网下载jar包 ,https://downloads.mysql ...

随机推荐

  1. Fourier级数

    目录 Fourier级数 函数的Fourier级数的展开 Fourier级数习题: Fourier级数 函数的Fourier级数的展开 Euler--Fourier公式 我们探讨这样一个问题: 假设\ ...

  2. Word Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验——微软Windows Phone 8.1系统倾情巨献

    Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验--微软Windows Phone 8.1系统倾情巨献" title="Word Flow:创造吉尼斯世界纪录的触屏文本输入的全 ...

  3. svn使用3 (转)

    接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态, ...

  4. Java IO: 序列化与ObjectInputStream、ObjectOutputStream

    作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和O ...

  5. SVN 常用资源

    常用命令 将文档checkout到本地目录 svn checkout path(path是服务器上的目录) svn checkout svn://192.168.1.1/pro/domain svn ...

  6. CAD卸载/完美解决安装失败/如何彻底卸载清除干净cad各种残留注册表和文件的方法

    在卸载cad重装CAD时发现安装失败,提示是已安装或安装失败.这是因为上一次卸载后没有清理干净,系统会误认为已经安装过了.有的同学是新装的系统也会出现安装失败的情况,这是因为C++ 或者.NET的原因 ...

  7. 《hdu 免费馅饼》

    题目描述 免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  8. 接口测试-chap6-获取页面动态token

    1.在发起某些请求时,可能会要求必须是从某个页面进行请求,此时会验证页面的token 2.这个token是动态生成的,每次请求时值都是不同的, 不可以通过fiddler抓取的值作为固定值传入,通过fi ...

  9. 最简化的DirectX 11开发环境的配置 VS2010

    转载自:http://blog.csdn.net/zhmxy555/article/details/7672101 在编写基于DirectX 11的应用程序之前,我们当然需要在IDE中加入Direct ...

  10. 《软件自动化测试开发-Java和Python测试开发实用指南》出版了

    1.关于书中下载链接的问题:出现404,页面不存在 解答:大小写要区分,l和1不能弄错了 2.关于勘误,出现极个别漏子少字错字 解答:后续版本会改进,目前能理解就好了 ---------------- ...