我一直在使用 Aptana 和 pydev 和 IDLE 来学习 python2.7。它在帮助我学习方面做得很好,除了当我遇到这个微博教程时。在其中有一条线from flask.ext.sqlalchemy import SQLAlchemy
通向一条db = SQLAlchemy(
线,在 Aptana 中没有帮助,没有文档字符串,没有可以进入其中的示例。更糟糕的是,所有这些:
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
nickname = db.Column(db.String(64), index = True, unique = True)
email = db.Column(db.String(120), index = True, unique = True)
role = db.Column(db.SmallInteger, default = ROLE_USER)
是红色的,不知道如何把它拆开来学习它的语法。但是,当我这样做时:
from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer,primary_key = True)
在 IDLE 中,我得到了自动完成,文档字符串,我可以看到还有什么可以进去,我可以学习。
我认为答案将存在于类似 IDE 的新环境中,我认为 VIM 可能会有所帮助。我在 Windows 上,所以 GIT、MinGW、TortoiseHG、_vimrc、vimfiles、{autoload,bundle}、pathogen.vim、jedi-vim、从源代码构建 vim(由于某种原因,我一直在寻找的那些没有启用 python)考虑到第一次曝光,这并不是一件容易的事。所以我有一个可以编辑python代码的vim,并且from flask.ext.sqlalchemy import SQLAlchemy
在vim中的结果与在Aptana中相同,没有帮助。
有人可以向我解释为什么 IDLE 能够提供帮助而 Aptana/Pydev 和 Vim 不能吗?有人可以告诉我他们如何提供帮助吗?
这就是 flask.ext.__init__().py 中的内容
# -*- coding: utf-8 -*-
"""
flask.ext
~~~~~~~~~
Redirect imports for extensions. This module basically makes it possible
for us to transition from flaskext.foo to flask_foo without having to
force all extensions to upgrade at the same time.
When a user does ``from flask.ext.foo import bar`` it will attempt to
import ``from flask_foo import bar`` first and when that fails it will
try to import ``from flaskext.foo import bar``.
We're switching from namespace packages because it was just too painful for
everybody involved.
:copyright: (c) 2011 by Armin Ronacher.
:license: BSD, see LICENSE for more details.
"""
def setup():
from ..exthook import ExtensionImporter
importer = ExtensionImporter(['flask_%s', 'flaskext.%s'], __name__)
importer.install()
setup()
del setup
因此,在我的情况下 from flask.ext.sqlalchemy import SQLAlchemy 转换为“在站点包中查找 flask_sqlalchemy.py 并在该文件中找到 SQLAlchemy”,在这种情况下,这是一个大类。我怎样才能让 Aptana 和 vim 看到这个,就像 IDLE 一样?