【发布时间】:2021-09-21 17:11:58
【问题描述】:
我使用pycharm 5.0和python3.5。我通过pycharm的内置函数(设置-项目-项目解释器-“+”)下载了所有的库。其他库看起来很好,但是烧瓶出现了一些问题-SQLAlchemy。
我成功导入flask-SQLAlchemy。但是,pycharm提醒我“类'SQLAlchemy'中未解析的属性引用'Column'”。“类'SQLAlchemy'中的未解析属性引用'relationship'”等等。
我尝试了一些方法,但它们没有奏效。例如:1.restart 2.remove and redownload 3.refresh the cache.which in PyCharm shows unresolved references error for valid code
代码:
from flask import Flask, redirect, render_template, session, url_for, flash
from flask_sqlalchemy import SQLAlchemy
from flask_bootstrap import Bootstrap
from flask_wtf import Form
from wtforms import StringField, SubmitField
import os
from wtforms.validators import data_required
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to guess string'
app.config['SQLALCHEMY_DATABASE_URI'] =\
'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
bootstrap = Bootstrap(app)
db = SQLAlchemy(app)
class Role(db.Model):
__tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
users = db.relationship('User', backref='role', lazy='dynamic')
def __repr__(self):
return '<Role %r>' % self.name
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
def __repr__(self):
return '<User %r>' % self.username
我该如何解决这个问题?
【问题讨论】:
-
发布代码,返回错误
-
sth 让我很困惑......我发现属性 "Column" 的位置在 G:\python\Lib\site-packages\sqlalchemy\sql\schema.py 中,但是'SQLAlchemy' 类在 G:\python\Lib\site-packages\flask_sqlalchemy_init_.py 中,我在 'SQLAlchemy' 类的源代码中没有找到任何属性。跨度>
-
你的代码运行了吗?这才是最重要的。我查看了 flask_sqlalchemy 的源代码,看起来它使用了一些魔法来与 PyCharm 可能无法正确检测到的基本 sqlalchemy 库兼容。
-
它可以运行。但是我想知道python是如何处理这个的,即extension lib和origin lib之间的关系,它们是如何连接的
-
你找到答案了吗?
标签: python pycharm flask-sqlalchemy