Add users blueprint
This commit is contained in:
parent
ba4b392db8
commit
f3c98dad27
|
@ -2,7 +2,8 @@ from flask import Flask, render_template, g
|
|||
|
||||
from .models import *
|
||||
from .markdown import *
|
||||
from .adapters.session_simple import session_provider
|
||||
from .blueprints.session_simple import session_provider
|
||||
from .blueprints.user_default import user_provider
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config["SECRET_KEY"] = "changeme"
|
||||
|
@ -13,6 +14,7 @@ db.init_app(app)
|
|||
migrate.init_app(app, db)
|
||||
|
||||
app.register_blueprint(session_provider, url_prefix="/session")
|
||||
app.register_blueprint(user_provider, url_prefix="/users")
|
||||
|
||||
|
||||
@app.route("/")
|
||||
|
|
|
@ -6,7 +6,7 @@ Log In
|
|||
|
||||
{% block content %}
|
||||
<h2>Log In</h2>
|
||||
<form action="{{ url_for(request.endpoint) }}" method="POST">
|
||||
<form action="{{ url_for(".login") }}" method="POST">
|
||||
<input type="hidden" style="display:none" name="_csrf" value="{{ csrf }}" />
|
||||
<input type="text" name="username" placeholder="Username" />
|
||||
<input type="submit" />
|
|
@ -0,0 +1,16 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}
|
||||
User List
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>
|
||||
User list
|
||||
</h2>
|
||||
<ul>
|
||||
{% for user in users %}
|
||||
<li><a href="{{ url_for(".show_user", username=user.username) }}">{{ user.username }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
|
@ -0,0 +1,15 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}
|
||||
{{user.username}}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>
|
||||
{{user.username}}
|
||||
{% if is_self %}
|
||||
(You)
|
||||
{% endif %}
|
||||
</h2>
|
||||
<p>This is a user profile</p>
|
||||
{% endblock %}
|
|
@ -0,0 +1,23 @@
|
|||
from flask import Blueprint, render_template, g
|
||||
import secrets
|
||||
|
||||
from ..models import User, db
|
||||
|
||||
__all__ = ["user_provider"]
|
||||
|
||||
user_provider = Blueprint("user", __name__, template_folder='templates')
|
||||
|
||||
@user_provider.route("/")
|
||||
def show_user_list():
|
||||
users = User.query.all()
|
||||
# TODO: pagination...
|
||||
return render_template("user_list.html", users=users)
|
||||
|
||||
@user_provider.route("/<username>")
|
||||
def show_user(username):
|
||||
is_self = g.wl_user is not None and username == g.wl_user.username
|
||||
if is_self:
|
||||
user = g.wl_user
|
||||
else:
|
||||
user = User.query.filter_by(username=username).first_or_404()
|
||||
return render_template("user_profile.html", user=user, is_self=is_self)
|
|
@ -12,7 +12,7 @@ class User(db.Model):
|
|||
avatar = db.Column(db.String, nullable=True)
|
||||
|
||||
def __repr__(self):
|
||||
return f"<User {self.username}>"
|
||||
return f"<User {self.id} {self.username} {self.email} {self.avatar}>"
|
||||
|
||||
class Section(db.Model):
|
||||
__tablename__ = "sections"
|
||||
|
|
Loading…
Reference in New Issue