1. 사용자 프로필 보기 기능

# vim app/routes.py

# ...

@app.route('/user/<username>')  # 동적 구성 요소 <username>
@login_required
def user(username):
    # query all로 username에 맞는 값 가져오기 시도하여 성공하면 결과 가지고, 실패하면 404 >에러 페이지 출력
    user = User.query.filter_by(username=username).first_or_404()
    # posts에 출력될 데이터 넣기
    posts = [
        {'author': user, 'body': 'Test post #1'},
        {'author': user, 'body': 'Test post #2'}
    ]
    # 성공하면 user 변수를 user에 넣고 posts 변수를 posts에 넣어 user.html 열기
    return render_template('user.html', user=user, posts=posts)

 

 

 

2. 사용자 프로필 템플릿 : user.html

{% extends "base.html" %}
# vim app/templates/user.html

{% block content %}
    <h1>User: {{ user.username }}</h1>
    <hr>
    {% for post in posts %}
    <p>
    {{ post.author.username }} says: <b>{{ post.body }}</b>
    </p>
    {% endfor %}
{% endblock %}

 

 

 

3. 사용자 프로필 템플릿 : base.html

Profile 버튼 및 링크 추가

<!-- vim app/templates/base.html -->

<!-- ... -->

    <div>
        Microblog:
        <a href="{{ url_for('index') }}">Home</a>
        {% if current_user.is_anonymous %}
        <a href="{{ url_for('login') }}">Login</a>
        {% else %}
        <a href="{{ url_for('user', username=current_user.username) }}">Profile</a>
        <a href="{{ url_for('logout') }}">Logout</a>
        {% endif %}
    </div>
    
<!-- ... -->

 

 

+ Recent posts