2013-05-08 124 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