将Flask链接到PostgresQL

时间:2018-12-16 20:26:57

标签: python postgresql flask flask-sqlalchemy

我在将烧瓶程序链接到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的细节,它们没有什么重要的。请帮帮我。

谢谢

1 个答案:

答案 0 :(得分:0)

您应该在form元素中定义 action 属性
例如<form method="POST" action="/register">

action属性指定数据发送到的位置(源MDN Web Docs

为了简化在Flask中使用SQLAlchemy的过程,可以使用Flask-SQLAlchemy扩展名。

您可以使用PostgreSQL适配器链接PostgreSQL和Python。最受欢迎的选择是psycopg2