Страница регистрации на flask - PullRequest
0 голосов
/ 27 мая 2020

При создании страницы регистрации с использованием flask и postgreSQL для хранения учетных данных учетные данные не сохраняются в базе данных, я новичок в flask.

Это html, я хотел отправить эту форму функции перенаправления в приложении flask, чтобы получить имя пользователя и пароль

<form action=" {{ url_for('redirection') }}" method="post">
    <label for="username"><b>Username</b></label>
    <input type="text" placeholder="Enter Username" name="username" required><br>

    <label for ="password"><b>Password</b></label>
    <input type="password" placeholder="Enter Password" name="password" required><br>



    <button type="button" class="btn btn-primary">Submit</button>
</form>

Это приложение flask,

import os

from flask import Flask, session, render_template,request
from flask_session import Session
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

app = Flask(__name__)

# Check for environment variable
if not os.getenv("DATABASE_URL"):
    raise RuntimeError("DATABASE_URL is not set")

# Configure session to use filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)

# Set up database
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))


@app.route("/")
def index():
    return render_template("index.html")

@app.route("/register")
def register():
    return render_template("registration.html")

@app.route("/login")
def login():
    return render_template("login.html") 

@app.route("/redirection", methods = ['POST'])
def redirection():
    username = request.form.get("username")
    password = request.form.get("password")
    db.execute("INSERT INTO users(username, password) VALUES (:username, :password)", {"username": username, "password": password})
    db.commit()
    return render_template("index.html")

1 Ответ

0 голосов
/ 27 мая 2020

Прежде всего, вам нужно импортировать из flask url_for

from flask import Flask, session, render_template, request, url_for # add the url_for

второе, что, я думаю, вам нужно будет отправить функцию из файла HTML в качестве параметра, поэтому попробуйте сделать

return render_template("login.html", redirection=url_for('redirection')) 

и внутри HTML страницы

<form action="{{redirection}}" method="post">....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...