From 3c68168f40a0c878bf97771b95582d6599dd1fe6 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Sat, 17 Nov 2018 22:16:09 +0100 Subject: [PATCH] Chapter 11: Generate fake users and posts (11c) --- app/fake.py | 37 +++++++++++++++++++++ app/templates/user.html | 2 +- requirements.txt => requirements/common.txt | 0 requirements/dev.txt | 3 ++ requirements/prod.txt | 1 + 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 app/fake.py rename requirements.txt => requirements/common.txt (100%) create mode 100644 requirements/dev.txt create mode 100644 requirements/prod.txt diff --git a/app/fake.py b/app/fake.py new file mode 100644 index 0000000..bdf52fc --- /dev/null +++ b/app/fake.py @@ -0,0 +1,37 @@ +from random import randint +from sqlalchemy.exc import IntegrityError +from faker import Faker +from . import db +from .models import User, Post + + +def users(count=100): + fake = Faker() + i = 0 + while i < count: + u = User(email=fake.email(), + username=fake.user_name(), + password='password', + confirmed=True, + name=fake.name(), + location=fake.city(), + about_me=fake.text(), + member_since=fake.past_date()) + db.session.add(u) + try: + db.session.commit() + i += 1 + except IntegrityError: + db.session.rollback() + + +def posts(count=100): + fake = Faker() + user_count = User.query.count() + for i in range(count): + u = User.query.offset(randint(0, user_count - 1)).first() + p = Post(body=fake.text(), + timestamp=fake.past_date(), + author=u) + db.session.add(p) + db.session.commit() diff --git a/app/templates/user.html b/app/templates/user.html index c3b301f..472fdf6 100644 --- a/app/templates/user.html +++ b/app/templates/user.html @@ -26,7 +26,7 @@

Member since {{ moment(user.member_since).format('L') }}. Last seen {{ moment(user.last_seen).fromNow() }}. -

{{ user.posts.count() }} blog posts.

+

{{ user.posts.count() }} blog post{% if user.posts.count() > 1 %}s{% endif %}.

{% if user == current_user %} diff --git a/requirements.txt b/requirements/common.txt similarity index 100% rename from requirements.txt rename to requirements/common.txt diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000..24bc97e --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,3 @@ +-r common.txt +Faker==1.0.0 +text-unidecode==1.2 diff --git a/requirements/prod.txt b/requirements/prod.txt new file mode 100644 index 0000000..6624a30 --- /dev/null +++ b/requirements/prod.txt @@ -0,0 +1 @@ +-r common.txt