Я не могу реализовать API в авторизации на основе токенов flask 2.o

#python #flask #flask-restful #flask-login #flask-apispec

#python #flask #flask-restful #flask-login #flask-apispec

Вопрос:

Нужна помощь для реализации шагов авторизации на основе токенов и решения. Я использую flask как серверную часть, а также интерфейс html и CSS. Но я сталкиваюсь с трудностями в поиске лучшего контента об api. моя цель — создать логин и регистрацию пользователей

Это мой код

#база данных MySQL

 from flask import Flask, render_template, request, redirect, url_for,jsonify
import db
import datetime
import time
app = Flask(__name__)
cursor, conn = db.connection(app)



@app.route("/")
def index():
    return render_template("signup.html", title="SignUp")

@app.route("/signUp", methods = ["POST"])

def signUp():
    username=str(request.form["user"])
    password = str(request.form["password"])
    email = str(request.form["email"])
    cursor = conn.cursor()
    cursor.execute("INSERT INTO users(name, password, email)VALUES(%s, %s, %s)", (username, password, email))
    conn.commit()
    conn.close()
    return redirect(url_for("login"))

@app.route("/login")
def login():
    return render_template("login.html", title="data")

@app.route("/checkUser", methods=["POST"])
def check():
    username = str(request.form["user"])
    password = str(request.form["password"])
    cursor.execute("SELECT * FROM users where name = %s and password=%s", (username, password))
    users = cursor.fetchone()
    if users is None:
        return "username is wrong"
    else:
        return render_template("home.html")
@app.route("/home")
def home():
    return render_template("home.html")


if __name__ == "__main__":``
    app.run(debug=True)
  

Комментарии:

1. из flaskext.mysql импорт MySQL импорт конфигурации def подключение (приложение): mysql = MySQL() app.config[‘MYSQL_DATABASE_USER’] = config.dbuser app.config[‘MYSQL_DATABASE_PASSWORD’] = config.dbpassword app.config[‘MYSQL_DATABASE_DB’] = config.dbname app.config[‘MYSQL_DATABASE_HOST’] = config.dbhost mysql.init_app(приложение) conn = mysql.connect() курсор = conn.cursor() возвращает курсор, conn

2. Добро пожаловать в SO! Пожалуйста, не используйте комментарии для добавления дополнительной информации к вашему вопросу. Вы всегда можете отредактировать свой вопрос, чтобы сделать это.

Ответ №1:

 db.py

from flaskext.mysql import MySQL
import config

def connection(app):
    mysql = MySQL()
    app.config['MYSQL_DATABASE_USER'] = config.dbuser
    app.config['MYSQL_DATABASE_PASSWORD'] = config.dbpassword
    app.config['MYSQL_DATABASE_DB'] = config.dbname
    app.config['MYSQL_DATABASE_HOST'] = config.dbhost
    mysql.init_app(app)
    conn = mysql.connect()
    cursor = conn.cursor()
    return cursor, conn

#config.py
dbuser = 'root'
dbpassword = ''
dbname = 'login_data'
dbhost = 'localhost'
debug = True
secret = 'flask-auth'
port = 8080