mm
2 years ago
1 changed files with 68 additions and 0 deletions
@ -0,0 +1,68 @@ |
|||
from flask import request, jsonify, redirect, url_for, render_template |
|||
from flask_login import LoginManager, login_user, logout_user, login_required, current_user |
|||
from app import app, db |
|||
from app.models import User |
|||
|
|||
login_manager = LoginManager() |
|||
login_manager.init_app(app) |
|||
login_manager.login_view = 'login' |
|||
|
|||
@login_manager.user_loader |
|||
def load_user(user_id): |
|||
return User.query.get(int(user_id)) |
|||
|
|||
@app.route('/api', methods=['POST']) |
|||
@login_required |
|||
def process_request(): |
|||
image = request.files.get('image') |
|||
text = request.form.get('text') |
|||
blocks = request.form.getlist('blocks') |
|||
|
|||
# Process image, text, and blocks as needed |
|||
|
|||
return jsonify(success=True) |
|||
|
|||
@app.route('/signup', methods=['GET', 'POST']) |
|||
def signup(): |
|||
if current_user.is_authenticated: |
|||
return redirect(url_for('process_request')) |
|||
|
|||
if request.method == 'POST': |
|||
username = request.form['username'] |
|||
password = request.form['password'] |
|||
user = User.query.filter_by(username=username).first() |
|||
|
|||
if user is None: |
|||
new_user = User(username=username) |
|||
new_user.set_password(password) |
|||
db.session.add(new_user) |
|||
db.session.commit() |
|||
return redirect(url_for('login')) |
|||
else: |
|||
return "User already exists" |
|||
|
|||
return render_template('signup.html') |
|||
|
|||
@app.route('/login', methods=['GET', 'POST']) |
|||
def login(): |
|||
if current_user.is_authenticated: |
|||
return redirect(url_for('process_request')) |
|||
|
|||
if request.method == 'POST': |
|||
username = request.form['username'] |
|||
password = request.form['password'] |
|||
user = User.query.filter_by(username=username).first() |
|||
|
|||
if user and user.check_password(password): |
|||
login_user(user) |
|||
return redirect(url_for('process_request')) |
|||
else: |
|||
return "Invalid username or password" |
|||
|
|||
return render_template('login.html') |
|||
|
|||
@app.route('/logout') |
|||
@login_required |
|||
def logout(): |
|||
logout_user() |
|||
return redirect(url_for('login')) |
Loading…
Reference in new issue