2014-12-17 8 views
5

Ich bin neu bei Python, ich habe gerade gelernt, wie man eine API mit Flasche unruhig und Kolben sql-alchemy erstellen. Ich möchte jedoch die Datenbank mit zufälligen Werten säen. Wie erreiche ich das? Bitte helfen Sie. Hier ist der api Code ...Wie kann ich eine Flasche sql-alchemy Datenbank

import flask 
import flask.ext.sqlalchemy 
import flask.ext.restless 
import datetime 

DATABASE = 'sqlite:///tmp/test.db' 

#Create the Flask application and the FLask-SQLALchemy object 
app = flask.Flask(__name__) 
app.config ['DEBUG'] = True 
app.config['SQLALCHEMY_DATABASE_URI'] = DATABASE 
db = flask.ext.sqlalchemy.SQLAlchemy(app) 

#create Flask-SQLAlchemy models 
class TodoItem(db.Model): 
    id = db.Column(db.Integer, primary_key = True) 
    todo = db.Column(db.Unicode) 
    priority = db.Column(db.SmallInteger) 
    due_date = db.Column(db.Date) 

#Create database tables 
db.create_all() 

#Create Flask restless api manager 
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db = db) 

#Create api end points 
manager.create_api(TodoItem, methods = ['GET','POST','DELETE','PUT'], results_per_page = 20) 

#Start flask loop 
app.run() 
+0

Schauen Sie diese http://stackoverflow.com/questions/19334604/creating-seed-data-in-a-flask-migrate-oder-alembic-migration – Nenodias

Antwort

0

Von einem anderen Neuling, die forgerypy und forgerypy3 Bibliotheken für diesen Zweck zur Verfügung stehen (obwohl sie schauen, wie sie in einem wenig berührt nicht erreicht wurden).

Ein einfaches Beispiel dafür, wie sie verwenden, indem sie zu Ihrem Modell hinzu:

class TodoItem(db.Model): 

    .... 

    @staticmethod 
    def generate_fake_data(records=10): 
     import forgery_py 
     from random import randint 
     for record in records: 
      todo = TodoItem(todo=forgery_py.lorem_ipsum.word(), 
          due_date=forgery_py.date.date(), 
          priority=randint(1,4)) 
      db.session.add(todo) 
     try: 
      db.session.commit() 
     except: 
      db.session.rollback() 

Sie würden dann in einer Shell-Sitzung die generate_fake_data Methode aufrufen.

Und Miguel Grinberg Flask Web Development (das O'Reilly-Buch, nicht Blog) Kapitel 11 ist eine gute Quelle dafür.

+1

Zeiger zu einem Buch beantworten nicht wirklich die Frage, – swa66

+0

Ja, ich stimme zu. Ich hätte es als Kommentar hinzugefügt, aber ich habe nicht genug Punkte (obwohl ich meine eigene Antwort kommentieren darf). Völlig bereit, es zu entfernen, um mit Format des Stapelüberlaufs übereinzustimmen, wenn Sie beraten. Ich habe dasselbe gesucht und nur diese Frage gefunden. –