Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
ba1f5f38
Commit
ba1f5f38
authored
Nov 21, 2013
by
Petrus J.v.Rensburg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SQLAlchemy example: build sample db on startup.
parent
aef7c0f3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
113 additions
and
3 deletions
+113
-3
test.sqlite
examples/sqla-inline/test.sqlite
+0
-0
sample_db.sqlite
examples/sqla/sample_db.sqlite
+0
-0
sample_db_2.sqlite
examples/sqla/sample_db_2.sqlite
+0
-0
simple.py
examples/sqla/simple.py
+113
-3
No files found.
examples/sqla-inline/test.sqlite
deleted
100644 → 0
View file @
aef7c0f3
File deleted
examples/sqla/sample_db.sqlite
deleted
100644 → 0
View file @
aef7c0f3
File deleted
examples/sqla/sample_db_2.sqlite
deleted
100644 → 0
View file @
aef7c0f3
File deleted
examples/sqla/simple.py
View file @
ba1f5f38
...
@@ -24,6 +24,8 @@ db = SQLAlchemy(app)
...
@@ -24,6 +24,8 @@ db = SQLAlchemy(app)
# Create models
# Create models
class
User
(
db
.
Model
):
class
User
(
db
.
Model
):
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
first_name
=
db
.
Column
(
db
.
String
(
100
))
last_name
=
db
.
Column
(
db
.
String
(
100
))
username
=
db
.
Column
(
db
.
String
(
80
),
unique
=
True
)
username
=
db
.
Column
(
db
.
String
(
80
),
unique
=
True
)
email
=
db
.
Column
(
db
.
String
(
120
),
unique
=
True
)
email
=
db
.
Column
(
db
.
String
(
120
),
unique
=
True
)
...
@@ -136,7 +138,7 @@ class PostAdmin(sqla.ModelView):
...
@@ -136,7 +138,7 @@ class PostAdmin(sqla.ModelView):
class
TreeView
(
sqla
.
ModelView
):
class
TreeView
(
sqla
.
ModelView
):
inline_models
=
(
Tree
,)
form_excluded_columns
=
[
'children'
,
]
# Create admin
# Create admin
...
@@ -148,10 +150,118 @@ admin.add_view(sqla.ModelView(Tag, db.session))
...
@@ -148,10 +150,118 @@ admin.add_view(sqla.ModelView(Tag, db.session))
admin
.
add_view
(
PostAdmin
(
db
.
session
))
admin
.
add_view
(
PostAdmin
(
db
.
session
))
admin
.
add_view
(
TreeView
(
Tree
,
db
.
session
))
admin
.
add_view
(
TreeView
(
Tree
,
db
.
session
))
if
__name__
==
'__main__'
:
# Create DB
def
build_sample_db
():
"""
Populate a small db with some example entries.
"""
import
random
import
datetime
db
.
drop_all
()
db
.
create_all
()
db
.
create_all
()
# Create sample Users
first_names
=
[
'Harry'
,
'Amelia'
,
'Oliver'
,
'Jack'
,
'Isabella'
,
'Charlie'
,
'Sophie'
,
'Mia'
,
'Jacob'
,
'Thomas'
,
'Emily'
,
'Lily'
,
'Ava'
,
'Isla'
,
'Alfie'
,
'Olivia'
,
'Jessica'
,
'Riley'
,
'William'
,
'James'
,
'Geoffrey'
,
'Lisa'
,
'Benjamin'
,
'Stacey'
,
'Lucy'
]
last_names
=
[
'Brown'
,
'Smith'
,
'Patel'
,
'Jones'
,
'Williams'
,
'Johnson'
,
'Taylor'
,
'Thomas'
,
'Roberts'
,
'Khan'
,
'Lewis'
,
'Jackson'
,
'Clarke'
,
'James'
,
'Phillips'
,
'Wilson'
,
'Ali'
,
'Mason'
,
'Mitchell'
,
'Rose'
,
'Davis'
,
'Davies'
,
'Rodriguez'
,
'Cox'
,
'Alexander'
]
user_list
=
[]
for
i
in
range
(
len
(
first_names
)):
user
=
User
()
user
.
first_name
=
first_names
[
i
]
user
.
username
=
first_names
[
i
]
.
lower
()
user
.
last_name
=
last_names
[
i
]
user
.
email
=
user
.
username
+
"@example.com"
user_list
.
append
(
user
)
db
.
session
.
add
(
user
)
# Create sample Tags
tag_list
=
[]
for
tmp
in
[
"YELLOW"
,
"WHITE"
,
"BLUE"
,
"GREEN"
,
"RED"
,
"BLACK"
,
"BROWN"
,
"PURPLE"
,
"ORANGE"
]:
tag
=
Tag
()
tag
.
name
=
tmp
tag_list
.
append
(
tag
)
db
.
session
.
add
(
tag
)
# Create sample Posts
sample_text
=
[
{
'title'
:
"de Finibus Bonorum et Malorum - Part I"
,
'content'
:
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
\
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
\
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
\
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
\
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
\
mollit anim id est laborum."
},
{
'title'
:
"de Finibus Bonorum et Malorum - Part II"
,
'content'
:
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque
\
laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto
\
beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur
\
aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi
\
nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur,
\
adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam
\
aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam
\
corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum
\
iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum
\
qui dolorem eum fugiat quo voluptas nulla pariatur?"
},
{
'title'
:
"de Finibus Bonorum et Malorum - Part III"
,
'content'
:
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium
\
voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati
\
cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id
\
est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam
\
libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod
\
maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus.
\
Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet
\
ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur
\
a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis
\
doloribus asperiores repellat."
}
]
for
user
in
user_list
:
entry
=
random
.
choice
(
sample_text
)
# select text at random
post
=
Post
()
post
.
user
=
user
post
.
title
=
entry
[
'title'
]
post
.
text
=
entry
[
'content'
]
tmp
=
int
(
1000
*
random
.
random
())
# random number between 0 and 1000:
post
.
date
=
datetime
.
datetime
.
now
()
-
datetime
.
timedelta
(
days
=
tmp
)
post
.
tags
=
random
.
sample
(
tag_list
,
2
)
# select a couple of tags at random
db
.
session
.
add
(
post
)
# Create a sample Tree structure
trunk
=
Tree
(
name
=
"Trunk"
)
db
.
session
.
add
(
trunk
)
for
i
in
range
(
5
):
branch
=
Tree
()
branch
.
name
=
"Branch "
+
str
(
i
+
1
)
branch
.
parent
=
trunk
db
.
session
.
add
(
branch
)
for
j
in
range
(
5
):
leaf
=
Tree
()
leaf
.
name
=
"Leaf "
+
str
(
j
+
1
)
leaf
.
parent
=
branch
db
.
session
.
add
(
leaf
)
db
.
session
.
commit
()
return
if
__name__
==
'__main__'
:
build_sample_db
()
# Start app
# Start app
app
.
run
(
debug
=
True
)
app
.
run
(
debug
=
True
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment