首页 文章

Flask-SQLAlchemy(mssql pyodbc)和带有蓝图的现有模型

提问于
浏览
0

我在python3.6环境中有以下Flask应用程序/文件夹结构:

site/
   __init__.py
   models.py
   static/
   templates/
     dashboard/
       index.html
     login/
       index.html
   views/
     __init__.py
     login.py
config.py
run.py

我的文件看起来像这样:

run.py

from site import app
app.run()

config.py

class BaseConfig(object):
  DEBUG = False
  TESTING = False
  WFT_CSRF_ENABLED = True

class DevConfig(BaseConfig):
  DEBUG = True
  SECRET_KEY = 'dev'
  SQLALCHEMY_DATABASE_URI = 'DRIVER={ODBC Driver 11 for SQL Server};SERVER=myServer;DATABASE=myDB;TRUSTED_CONNECTION=yes'
  SQLALCHEMY_TRACK_MODIFICATIONS = False

site / init.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('config.DevConfig')
db = SQLAlchemy(app)

from site.views import login
app.register_blueprint(login.mod)

site / views / login.py

from flask import Blueprint, render_template

mod = Blueprint('login', __name__)

@mod.route('/')
def index():
  return render_template('login/index.html')

site / models.py

class User(db.Model):
    __table__ = db.Model.metadata.tables['users']

    def __repr__(self):
        return '<User %r>' % self.username

我想要做的是连接并使用我的ms-sql数据库中的现有模型,称为用户 .

我是Flask,Flask-SQLAlchemy,Blueprint和Python的新手,我对如何在login.py中使用db.Model感到很痴迷 . 如何在蓝图范例中实现这一目标?

任何帮助和方向将非常受欢迎,并感谢先进的帮助!

问候,maki

1 回答

  • 0

    您可以将以下行添加到login.py:

    from site import db
    from site.models import User
    

    要将新用户添加到数据库,您可以使用以下命令:

    new_user = User()
    db.session.add(new_user)
    db.session.commit()
    

    并在您的用户表中添加:

    _tablename__ = 'user'
    

    您需要按照flask_sqlalchemy doc中建议的语法更改配置中的数据库URI

    替换你拥有的东西:

    SQLALCHEMY_DATABASE_URI : mysql://username:password@server_adress/db_name
    

    对于用户身份验证我可以建议你flask_login

相关问题