2013-05-08 111 views
16

我試圖使用peewee連接到亞馬遜的RDS上的MySQL數據庫,我無法讓它工作。我是新來的數據庫,所以我可能做一些愚蠢的,但是這是我嘗試:使用peewee訪問遠程MySQL數據庫

import peewee as pw 

myDB = pw.MySQLDatabase(host="mydb.crhauek3cxfw.us-west-2.rds.amazonaws.com",port=3306,user="user",passwd="password",db="mydb") 


class MySQLModel(Model): 
    """A base model that will use our MySQL database""" 
    class Meta: 
     database = myDB 

class User(MySQLModel): 
    username = CharField() 

myDB.connect() 

它在第二行掛斷了電話,說__init__() takes at least 2 arguments (1 given)

我缺少什麼?爲什麼它說我只給了它一個參數,當我給它五個?

非常感謝,亞歷克斯

回答

26

我改變了它是這樣的,它的工作:

import peewee as pw 

myDB = pw.MySQLDatabase("mydb", host="mydb.crhauek3cxfw.us-west-2.rds.amazonaws.com", port=3306, user="user", passwd="password") 

class MySQLModel(pw.Model): 
    """A base model that will use our MySQL database""" 
    class Meta: 
     database = myDB 

class User(MySQLModel): 
    username = pw.CharField() 
    # etc, etc 


# when you're ready to start querying, remember to connect 
myDB.connect() 

謝謝你們, 亞歷

+0

正如你提到的,MAX_LENGTH =沒有一個是不正確的。應該省略或者max_length = coleifer 2013-05-08 23:13:06

+0

你說得對,雖然它適用於上面,但是當我嘗試使用'User.create_table()'創建表時,它破壞了代碼。我會從上面刪除它。 – 2013-05-09 03:27:55

+0

謝謝!你能告訴如何在連接後執行SELECT * FROM表嗎? – 2017-08-24 14:35:17