Пример #1
0
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()
Пример #2
0
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())