2017-06-10 176 views
1

我对Flask和SQLAlchemy非常新颖。在看了howto create db mysql with sqlalchemy之后,我在SQLAlchemy中创建了一个连接到MySQL数据库的简单文件,然后执行CREATE DATABASE IF NOT EXISTS dbname。我只是想知道如何在MySQL中运行这个测试。我所看到的每一处似乎都提到了如何在SQLAlchemy中编写东西,但我对如何执行它感到困惑。对不起,这个愚蠢的问题。如何使用mysql执行sqlalchemy脚本以创建数据库

+0

是否要在MySQL控制台上运行db创建命令?如果是这样,这不是一个SQLAlchemy问题,只是MySQL:用'mysql -u user -p'启动MySQL控制台,输入密码,然后输入'CREATE DATABASE IF NOT EXISTS dbname;'并按回车。通过输入'SHOW DATABASES;'来查看你的工作,看看是否在那里列出了'dbname'。另一方面,如果你只是想运行你写的代码,如果它全部在全局范围内(不包含在函数中),进入你的命令行并键入'python my_script.py'。 –

+1

谢谢,这澄清了我,并得到它的工作:) – Alex

回答

0

实际上你似乎很困惑,因为即使标题混淆了所有的事情 - “如何使用mysql执行sqlalchemy脚本来创建数据库”。

我不太清楚“sqlalchemy脚本”是什么意思(假设你的意思是使用sqlalchemy库的python脚本),我们也不用mysql执行sqlalchemy代码 - 我们编写代码(我们可以在Python中使用sqlalchemy库创建基于我们的代码的SQL查询,它连接到mysql database server,向其发送SQL查询,接收结果并返回到您的代码。

CREATE DATABASE IF NOT EXISTS dbname是一个SQL命令来创建数据库,你可以执行它无论是从Python代码(见,例如,这个回答这个问题您链接到 - https://stackoverflow.com/a/10770526/4612064):

import sqlalchemy 
engine = sqlalchemy.create_engine('mysql://user:[email protected]') # connect to server 
engine.execute("CREATE DATABASE dbname") #create db 

,或者你能够做到这一点使用mysql命令行客户端,如在注释中描述你的问题:

# run in the shell 
mysql -u user -p password # often mysql -u root 
mysql > CREATE DATABASE IF NOT EXISTS dbname; 

在任何情况下,你只需要做一次,一旦创建了数据库,你可以用它您r代码,不需要每次都做。 很明显,您还需要在您的系统上安装并运行mysql服务器。

我建议你要做的是先学习SQL的基础知识(无python/SQLAlchemy),并学习SQL如何直接工作(主要是如何创建数据库和表,如何设计表结构 - 数据规范化,如何获取数据 - SELECT/JOIN,WHERE/ORDER,聚合函数和HAVING)。一旦你知道了这些事情,使用SQLAlchemy将会容易得多。

相关问题