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

时间:2017-12-04 15:24:48

标签: sql-server flask flask-sqlalchemy pyodbc

我在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

站点/的初始化的.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)

站点/视图/ login.py

from flask import Blueprint, render_template

mod = Blueprint('login', __name__)

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

站点/ 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感到很痴迷。如何在蓝图范例中实现这一目标?

任何帮助和方向都会受到很多关注,感谢先进的帮助!

的问候, 马基

1 个答案:

答案 0 :(得分: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