2017-06-10 174 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將會容易得多。

相關問題