forked from HB6H057/wp2flask-cms
/
manage.py
executable file
·86 lines (62 loc) · 2.42 KB
/
manage.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!env/bin/python
from faker import Factory
from random import choice, sample, randint
from sqlalchemy import func
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager, Server
from app import create_app
from app.core.models import db, User, Category, Post, Tag, Comment
app = create_app()
manager = Manager(app)
Migrate(app, db)
app.jinja_env.globals['Category'] = Category
app.jinja_env.globals['Post'] = Post
app.jinja_env.globals['Tag'] = Tag
app.jinja_env.globals['func'] = func
@manager.command
def forged():
db.drop_all()
db.create_all()
faker = Factory.create()
def generate_post(func_user, func_categorys, func_tags):
return Post(title=faker.sentence(),
body=faker.paragraph(),
user=func_user(),
category=func_categorys(),
tags=func_tags())
def generate_user():
return User(email=faker.email(),
username=faker.word(),
nickname=faker.name(),
password='buyaoyongroot')
def generate_category():
return Category(name=faker.last_name(),
description=faker.sentence())
def generate_tag():
return Tag(name=faker.first_name())
def generate_comment(func_post):
return Comment(author=faker.first_name(),
email=faker.email(),
site='http://www.%s.com' % (faker.first_name()),
content=faker.sentence(),
post=func_post())
users = [generate_user() for i in xrange(10)]
db.session.add_all(users)
categorys = [generate_category() for i in xrange(10)]
db.session.add_all(categorys)
tags = [generate_tag() for i in xrange(30)]
db.session.add_all(tags)
def random_user(): return choice(users)
def random_category(): return choice(categorys)
def random_tags(): return sample(tags, randint(1, 5))
posts = [generate_post(random_user,
random_category, random_tags) for i in xrange(100)]
db.session.add_all(posts)
def random_post(): return choice(posts)
comments = [generate_comment(random_post) for i in xrange(1000)]
db.session.add_all(comments)
db.session.commit()
if __name__ == '__main__':
manager.add_command("runserver", Server(use_debugger=True))
manager.add_command("db", MigrateCommand)
manager.run()