相关疑难解决方法(0)

密码包含特殊字符时写入连接字符串

我正在使用SQLalchemy作为Python项目,我希望有一个整洁的连接字符串来访问我的数据库.例如:

engine = create_engine('postgres://user:pass@host/database')
Run Code Online (Sandbox Code Playgroud)

问题是我的密码包含一系列特殊字符,在我尝试连接时会被解释为分隔符.

我意识到我可以创建一个对象然后传递我的凭据,如下所示:

drivername  = 'postgres',
username    = 'user', 
password    = 'pass', 
host        = 'host',
database    = 'database'
Run Code Online (Sandbox Code Playgroud)

但是如果可能的话,我宁愿使用连接字符串.

所以要清楚,是否可以编码我的连接字符串或连接字符串的密码部分 - 以便可以正确解析它?

python connection-string sqlalchemy character-encoding

28
推荐指数
3
解决办法
2万
查看次数

使用Flask-SQLAlchemy连接到MSSQL数据库

我正在尝试通过Flask-SQLAlchemy连接到本地MSSQL DB.

这是我__init__.py文件的代码摘录:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mssql+pyodbc://HARRISONS-THINK/LendApp'
db = SQLAlchemy(app)

SQLALCHEMY_TRACK_MODIFICATIONS = False
Run Code Online (Sandbox Code Playgroud)

正如您在SQL Server Management Studio中看到的,此信息似乎匹配:

在此输入图像描述

这是在我的models.py文件中创建一个简单的表:

from LendApp import db

class Transaction(db.model):
    transactionID = db.Column(db.Integer, primary_key=True)
    amount = db.Column(db.Integer)
    sender = db.Column(db.String(80))
    receiver = db.Column(db.String(80))

    def __repr__(self):
        return 'Transaction ID: {}'.format(self.transactionID)
Run Code Online (Sandbox Code Playgroud)

然后,我通过执行这两行,使用Pycharm中的Python控制台连接到数据库:

>>> from LendApp import db
>>> db.create_all()
Run Code Online (Sandbox Code Playgroud)

这导致以下错误:

DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no …
Run Code Online (Sandbox Code Playgroud)

python sql-server flask-sqlalchemy

10
推荐指数
3
解决办法
2万
查看次数