#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