flask site buildout #2

Merged
finn merged 25 commits from mgtut1 into master 2024-08-05 08:41:03 +00:00
4 changed files with 14 additions and 12 deletions
Showing only changes of commit b3b188f370 - Show all commits

View File

@ -1,12 +1,17 @@
from threading import Thread
from flask import render_template from flask import render_template
from flask_mail import Message from flask_mail import Message
from app import mail, app from app import mail, app
def send_async_email(app, msg):
with app.app_context():
mail.send(msg)
def send_email(subject, sender, recipients, text_body, html_body): def send_email(subject, sender, recipients, text_body, html_body):
msg = Message(subject, sender=sender, recipients=recipients) msg = Message(subject, sender=sender, recipients=recipients)
msg.body = text_body msg.body = text_body
msg.html = html_body msg.html = html_body
mail.send(msg) Thread(target=send_async_email, args=(app, msg)).start()
def send_password_reset_email(user): def send_password_reset_email(user):
token = user.get_reset_password_token() token = user.get_reset_password_token()

View File

@ -10,7 +10,7 @@ from app import db, login, app
from flask_login import UserMixin from flask_login import UserMixin
#debug #debug
import sys #import sys
followers = sa.Table( followers = sa.Table(
'followers', 'followers',

View File

@ -10,7 +10,7 @@ from app.models import User, Post
from app.email import send_password_reset_email from app.email import send_password_reset_email
#debug: #debug:
import sys #import sys
@app.before_request @app.before_request
def before_request(): def before_request():
@ -90,15 +90,12 @@ def register():
@app.route('/reset_password/<token>', methods=['GET', 'POST']) @app.route('/reset_password/<token>', methods=['GET', 'POST'])
def reset_password(token): def reset_password(token):
if current_user.is_authenticated: if current_user.is_authenticated:
print('rp user is authed', file=sys.stderr)
return redirect(url_for('index')) return redirect(url_for('index'))
user = User.verify_reset_password_token(token) user = User.verify_reset_password_token(token)
if not user: if not user:
print('rp not user', file=sys.stderr)
return redirect(url_for('index')) return redirect(url_for('index'))
form = ResetPasswordForm() form = ResetPasswordForm()
if form.validate_on_submit(): if form.validate_on_submit():
print('rp validated', file=sys.stderr)
user.set_password(form.password.data) user.set_password(form.password.data)
db.session.commit() db.session.commit()
flash('Your password has been reset.') flash('Your password has been reset.')
@ -175,14 +172,11 @@ def unfollow(username):
@app.route('/reset_password_request', methods=['GET', 'POST']) @app.route('/reset_password_request', methods=['GET', 'POST'])
def reset_password_request(): def reset_password_request():
if current_user.is_authenticated: if current_user.is_authenticated:
print('rpr user is authed', file=sys.stderr)
return redirect(url_for('index')) return redirect(url_for('index'))
form = ResetPasswordRequestForm() form = ResetPasswordRequestForm()
if form.validate_on_submit(): if form.validate_on_submit():
print('rpr form validated', file=sys.stderr)
user = db.session.scalar(sa.select(User).where(User.email == form.email.data)) user = db.session.scalar(sa.select(User).where(User.email == form.email.data))
if user: if user:
print('rpr if user', file=sys.stderr)
send_password_reset_email(user) send_password_reset_email(user)
flash('Password reset sent.') flash('Password reset sent.')
return redirect(url_for('login')) return redirect(url_for('login'))

View File

@ -9,8 +9,8 @@
{% endif %} {% endif %}
</head> </head>
<body> <body>
<div> <header>
blog: <nav>
<a href="{{ url_for('index') }}">home</a> <a href="{{ url_for('index') }}">home</a>
<a href="{{ url_for('explore') }}">explore</a> <a href="{{ url_for('explore') }}">explore</a>
{% if current_user.is_anonymous %} {% if current_user.is_anonymous %}
@ -20,7 +20,10 @@
<a href="{{ url_for('logout') }}">logout</a> <a href="{{ url_for('logout') }}">logout</a>
{% endif %} {% endif %}
</div> </nav>
<h1>oily.dad</h1>
<h4>destroy me</h4>
</header>
<hr> <hr>
{% with messages = get_flashed_messages() %} {% with messages = get_flashed_messages() %}
{% if messages %} {% if messages %}