我在将烧瓶程序链接到Postgre SQL时遇到问题
import os
from flask import Flask, session
from flask_session import Session
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from flask import Flask, render_template, request
from models import db
app = Flask(__name__)
POSTGRES = {
'user': 'user',
'pw': 'password',
'db': 'database',
'host': '127.0.0.1',
'port': '5432',
}
# 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"
# 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",methods=['GET','POST'])
def register():
return render_template("register.html")
if request.method=='POST':
name=request.form['username']
password=request.form['password']
connection = mysql.get_db()
cursor = connection.cursor()
query="INSERT INTO 'userdetails'(username,password) VALUES(%s,%s)"
cursor.execute(query,(username,password))
connection.commit()
@app.route("/login")
def login():
return render_template("login.html")
Register.html
<html>
<head>
<title>Project1</title>
</head>
<form method="POST">
<input type="username" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<input type="submit" value="Register">
</form>
</html>
使用Heroku提供的凭据进行设置时,我已经指定了DATABASE_URl。我无法将用户名和密码存储到数据库中。 register.html页面包含一个带有用户名输入字段和密码输入字段的表单。帮助将不胜感激。
P.S我知道我留下了postgre的细节,它们没有什么重要的。请帮帮我。
谢谢
答案 0 :(得分:0)
您应该在form元素中定义 action 属性
例如<form method="POST" action="/register">
action属性指定数据发送到的位置(源MDN Web Docs)
为了简化在Flask中使用SQLAlchemy的过程,可以使用Flask-SQLAlchemy扩展名。
您可以使用PostgreSQL适配器链接PostgreSQL和Python。最受欢迎的选择是psycopg2。