首先创建User模型
class User(UserMixin,db.Model):
__tablename__ = 'users'
#..
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)
刷新用户访问时间
def ping(self):
self.last_seen = datetime.utcnow()
db.session.add(self)
app/auth/views.py :更新已登录用户的访问时间
@auth.before_app_request
# def before_request():
# if current_user.is_authenticated:
# current_user.ping()
# if not current_user.confirmed \
# and request.endpoint[:5] != 'auth.' :
# return redirect(url_for('auth.unconfirmed'))
用户资料页面
app/main/views.py
@main.route('/user/<username>')
def user(username):
user = User.query.filter_by(username=username).first()
if user is None:
abort(404)
return render_template('user.html', user=user)
用户资料页面的模板
{% block page_content %} <div class="page-header"> <h1>{{ user.username }}</h1> </div> {% if user.name or user.location %} <p> {% if user.name %}{{ user.name }}{% endif %} {% if user.about_me %}<p>{{ user.about_me }}</p>{% endif %} {% if user.location %} From<a href="http://maps.google.com/?q={{ user.location }}">{{ user.location }}</a> {% endif %} </p> {% endif %} {% if current_user.is_administrator() %} <p><a href="mailto:{{ user.email }}" >{{ user.email }}</a></p> <a class="btn btn-danger" href="{{ url_for('.edit_profile_admin',id=user.id) }}">Edit</a> {% endif %} <p> Member since {{ moment(user.member_since).format('L') }}. Last seen {{ moment(user.last_seen).fromNow() }} </p> {% endblock %}