SQLAlchemy:“NoneType”对象没有属性“drivername”

2024-03-29

我正在尝试将我的 Flask 应用程序连接到本地 MySQL 数据库进行测试。我创建了一个 Flask 对象和一个类来表示成功连接后创建的示例表。

这些是我的项目的本地环境变量:

#.env
LOCAL_MYSQL_URL = mysql://Username:[email protected] /cdn-cgi/l/email-protection:3306/database_name

这是我的项目名称__init__ file:

#__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os

ON_HEROKU = 'ON_HEROKU' in os.environ

if ON_HEROKU:
    DB_URL = os.environ.get('CLEARDB_DATABASE_URL')
else:
    DB_URL = os.environ.get('LOCAL_MYSQL_URL')

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY')

db = SQLAlchemy(app)  
db.create_all()
db.session.commit()

但是,运行应用程序后出现以下错误:

  if sa_url.drivername.startswith('mysql'):
AttributeError: 'NoneType' object has no attribute 'drivername'

我正在尝试按照 stackoverflow 上针对类似问题提供的教程和答案来完成这项工作,但到目前为止,它们都没有帮助我。

我在这里缺少什么?我的 mysql 驱动程序名称有什么问题?


确保 SQLAlchemy URI 类似于此格式pip install pymysql

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://{DB_USERNAME}:{DB_PASSWORD}@localhost:3306/{DB_NAME}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy:“NoneType”对象没有属性“drivername” 的相关文章

随机推荐

  • Laravel 真的这么慢吗?

    我刚刚开始使用 Laravel 我几乎还没有编写任何代码 但我的页面加载需要将近一秒钟 当我的无框架应用程序和 NodeJS 应用程序花费约 2 毫秒时 这让我有点震惊 拉拉维尔在做什么 这不是正常行为 是吗 是否需要一些微调 Larave
  • 无法使用php在mysql中保存大文本

    query INSERT INTO ARTICLES TITLE BY IN POST VALUES title by in POST post 该代码能够保存小长度文本 但不能保存大文本 的数据类型为POST字段是长文本 另外 如果我通过
  • 使用 C# (telerik) 在 wpf 中自定义弹出窗口的设计

    我在按钮单击事件中显示一个弹出窗口 gt 我在该弹出窗口中保留了一个自定义用户控件 因此每当显示弹出窗口时 都会显示自定义用户控件 但现在我需要修改自定义控件 弹出窗口中当前的自定义控件如下所示 但我需要角落看起来像下面的图片 如何做到这一
  • Angular 4.3 HttpClient:拦截响应

    在有关新的文档中HttpClientModuleAngular 4 3的新版本中 拦截请求的机制解释得非常好 还提到了响应拦截器机制 但我找不到任何相关内容 有谁知道如何拦截响应以便在将正文消息发送到服务之前修改正文消息 Thanks 我最
  • 按关系属性排序 neo4j

    使用 Neo4j 1 9 3 我想创建一个音乐节目列表 在给定的节目中可能会表演三段 每件作品都有一个与之关联的作曲家 并且可能出现在许多不同的程序中 因此我无法在作品节点上放置序列号 我假设我可以创建该程序 其与每个部分的关系如下所示 p
  • Rails 4 加密 Cookie 重放攻击

    我最近升级到 Rails 4 并改用加密 cookie 作为会话存储 不幸的是 这似乎意味着重放攻击是可能的 即如果用户注销 任何 cookie 都不会失效 并且可以用于在没有用户 密码的情况下进行身份验证 据我所知 这是加密 cookie
  • Spring真的不支持接口注入吗?

    我知道 Spring 不支持接口注入 而且我已经读过很多次了 但今天 当我看到 Martin Fowler 写的一篇关于国际奥委会的文章时 link http martinfowler com articles injection html
  • Oracle PIVOT,两次?

    我一直在尝试在 Oracle 11g 中不再使用 DECODE 来透视行 其中有一个方便的 PIVOT 函数 但我可能发现了一个限制 我试图为基表中的每个值返回 2 列 就像是 SELECT somethingId splitId1 spl
  • 将“var”传递给另一个方法

    我可能完全错过了这里的重点 但是 如何将 var 传递给另一个方法 我正在使用 linq 将 XML 加载到可枚举对象列表中 我有不同的对象类型 具有不同的字段 但无论使用哪个对象 我的过程的最后一步都是相同的 XNamespace xml
  • 单例中 getter 和 setter 的线程安全

    我在 Swift 3 中创建了一个简单的单例 class MySingleton private var myName String private init static let shared MySingleton func setNa
  • 在 VSTS Powershell 内联脚本任务中运行 drop SQL DB 时找不到类型 [Microsoft.SqlServer.Management.Smo.Server]

    在我的 VSTS 版本中 当我运行以下内联 Powershell 版本 5 1 脚本时 srv new Object Microsoft SqlServer Management Smo Server db New Object Micro
  • 如何以 Angular(v2 及以上)反应形式查找无效控件

    我在 Angular 中有一个反应形式 如下所示 this AddCustomerForm this formBuilder group Firstname Validators required Lastname Validators r
  • 协变类型 T 发生在不变位置

    我正在 Scala 中迈出第一步 我想让以下代码起作用 trait Gene T val gene Array T 编译器给出的错误是 covariant type T occurs in invariant position in typ
  • 在 React 中,如何将参数从子组件传递到父组件?

    在 React JS 中 我无法将值从子组件传递到父组件 这个问题是上一个问题的后续问题在 React JS 中 我如何告诉父组件子组件发生了什么事 https stackoverflow com questions 58403770 in
  • 访问 firebase firestore 数据库仪表板是否会被视为读取操作?

    我现在正处于该项目的开发阶段 目前该项目仅使用一个 Android 应用程序作为前端 Android 使用限制和分页进行查询 但阅读的文档总数远远超出了预期 我试图弄清楚这一点 为什么即使用户只有一个 我 阅读的文档数量却如此之大 如果阅读
  • 带红色圆圈的 Intellij Idea 文件

    我的 Intellij Idea 在 Project Explorer 中的文件名都有一个红色小圆圈 上面写着 J 那代表什么 IntelliJ 识别出这是一个 java 文件 但它没有标记为项目源的一部分 检查您的项目是否遵循 Maven
  • 如何防止在 Vim 中遍历跳转列表时离开当前缓冲区?

    I frequently have several buffers open in my Vim session This means that my jump list stores locations from several buff
  • 使用 Jest 模拟基于承诺的请求

    我正在尝试使用 Jest 对函数进行单元测试 但在处理 jest 模拟模块时遇到了一些麻烦 相当于 Nodejs 世界中的 rewire 或 proxyquire 我实际上正在尝试测试是否已使用一些参数在模拟模块上调用了间谍 这是我要测试的
  • 在 ASP.NET MVC 的 Windsor 配置中,控制器的生活方式是否应该始终是瞬态的?

    我遇到了一个问题 我认为 Html DropDownList 会在我第一次提交表单时回发所选值 但每个后续回发只会发布初始回发中的数据 因此 我将生活方式 瞬态 添加到为温莎城堡配置控制器的组件元素中 这解决了问题 但当然使回发需要更长的时
  • SQLAlchemy:“NoneType”对象没有属性“drivername”

    我正在尝试将我的 Flask 应用程序连接到本地 MySQL 数据库进行测试 我创建了一个 Flask 对象和一个类来表示成功连接后创建的示例表 这些是我的项目的本地环境变量 env LOCAL MYSQL URL mysql Userna