Задать вопрос
@zlodiak

Как заполнить таблицу тестовыми данными?

Помогите пожалуйста понять в чём суть ошибки.

Я использую пакет nimesis. С помощью него пытаюсь сгенерировать данные чтобы заполнить ими таблицу в БД.

Вот моя модель:
from app import db
import datetime


class User(db.Model):
    __tablename__ = 'users'

    id =            db.Column(db.Integer, primary_key=True)
    username =      db.Column(db.String(40), unique=True, nullable=False)
    password_hash = db.Column(db.String(128), nullable=False)
    reg_date_unix = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
    upd_date_unix = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
    email =         db.Column(db.String(40))
    desc =          db.Column(db.Text)

    def __repr__(self):
        return '<User {}>'.format(self.username)

    @staticmethod
    def _bootstrap(count=10, locale='ru'):
        from mimesis import Generic

        generic = Generic(locale)

        for _ in range(count):
            user = User(
                username=generic.full_name(gender='female'),
                password_hash=generic.text(quantity=100),
                reg_date_unix=generic.datetime.timestamp(posix=False),
                upd_date_unix=generic.datetime.timestamp(posix=False),
                email=generic.email(),
                desc=generic.numbers.gender()
            )

            db.session.add(user)
            try:
                db.session.commit()
            except Exception:
                db.session.rollback()


Как видите, класс модели имеет статический метод, в котором генерируются значения для таблицы. при этом в БД таблица уже создана.

Проблема проявляется когда я пытаюсь из шелла запустить метод _bootstrap() следующим образом:
(venv) kalinin@md ~/python/crazy_run $ flask shell
Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
[GCC 5.4.0 20160609] on linux
App: app [production]
Instance: /home/kalinin/python/crazy_run/instance
>>> User()._bootstrap()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/kalinin/python/crazy_run/app/models.py", line 21, in _bootstrap
    from mimesis import Generic
  File "/home/kalinin/python/crazy_run/venv/lib/python3.5/site-packages/mimesis/__init__.py", line 10, in <module>
    from mimesis.providers import *
  File "/home/kalinin/python/crazy_run/venv/lib/python3.5/site-packages/mimesis/providers/__init__.py", line 5, in <module>
    from mimesis.providers.base import BaseProvider, BaseDataProvider
  File "/home/kalinin/python/crazy_run/venv/lib/python3.5/site-packages/mimesis/providers/base.py", line 84
    self._data: Dict[str, Any] = {}
              ^
SyntaxError: invalid syntax


То есть система говорит мне, что ошибка в
from mimesis import Generic

Но в чём именно ошибка и как её исправить мне не понятно.
  • Вопрос задан
  • 394 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
qlkvg
@qlkvg
python backend developer
Питон старый. Аннотирование типов появилось в питоне, начиная с версии 3.6.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы