2013-05-08 7 views
16

Sto provando a connettermi a un database MySQL su RDS di Amazon utilizzando peewee e non riesco a farlo funzionare. Sono nuovo di basi di dati, quindi sono probabilmente fare qualcosa di stupido, ma questo è quello che sto cercando:Accesso al database MySQL remoto con peewee

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() 

si blocca sulla seconda linea, dicendo __init__() takes at least 2 arguments (1 given)

Che cosa mi manca? Perché sta dicendo che gli sto dando un solo argomento quando gliene do cinque?

Grazie mille, Alex

risposta

26

ho cambiato per essere come questo e ha funzionato:

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() 

Grazie ragazzi, Alex

+0

Come annotato, max_length = None non è corretto. Dovrebbe essere omesso o max_length = coleifer

+0

Hai ragione, anche se ha funzionato per sopra, ha rotto il codice quando ho provato a creare tabelle usando 'User.create_table()'. Lo rimuoverò da sopra. –

+0

Grazie! Potresti dire come eseguire SELECT * FROM table dopo la connessione? –