Chapter 10. User Profiles
In this chapter, user profiles for Flasky are implemented. All socially aware sites give their users a profile page, where a summary of the user’s participation in the website is presented. Users can advertise their presence on the website by sharing the URL to their profile page, so it is important that the URLs be short and easy to remember.
Profile Information
To make user profile pages more interesting, some additional information about users can be recorded. In Example 10-1 the User
model is extended with several new fields.
class
User
(
UserMixin
,
db
.
Model
):
# ...
name
=
db
.
Column
(
db
.
String
(
64
))
location
=
db
.
Column
(
db
.
String
(
64
))
about_me
=
db
.
Column
(
db
.
Text
())
member_since
=
db
.
Column
(
db
.
DateTime
(),
default
=
datetime
.
utcnow
)
last_seen
=
db
.
Column
(
db
.
DateTime
(),
default
=
datetime
.
utcnow
)
The new fields store the user’s real name, location, self-written description, date of registration, and date of last visit. The about_me
field is assigned the type db.Text()
. The difference between db.String
and db.Text
is that db.Text
does not need a maximum length.
The two timestamps are given a default value of the current time. Note that datetime.utcnow
is missing the ()
at the end. This is because the default
argument to db.Column()
can take a function as a default value, so each time a default value needs to be generated the function is invoked to produce it. This default value is all that is needed to manage the ...
Get Flask Web Development now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.