def init_data(): from sands.models.sketch import ( Type, Word, WordType, ) from sands.database import db from sands.models import data types = [ {"name": t['name']} for t in data.types_map.values() ] words = [] for names in data.init_words.itervalues(): for name in names: words.append({"name": name}) # Type and Word Base with db.atomic(): Type.insert_many(types).execute() Word.insert_many(words).execute() # Words ForeignKey with db.atomic(): rows = [] for type_name, words in data.init_words.iteritems(): type_instance = Type.get(name=type_name) for word in words: rows.append( dict( type=type_instance, word=Word.get(name=word) ) ) WordType.insert_many(rows).execute()
def sketch(): form = SketchForm() if request.method == "POST": if form.validate_on_submit(): result = dict( (type_name, Word.random_by_type(type_name).name) for type_name in form.get_true_field() ) return render_template( "from_sketch/search/result.html", **locals() ) return jsonify(form.errors) else: return render_template("from_sketch/search/index.html", **locals())