PyCharm Sqlalchemy-通过终端添加数据

时间:2018-09-20 16:30:23

标签: python sqlalchemy pycharm

所以我先安装了venv,然后安装了SQLalchemy

然后我在Pycharm中编写了一段Python代码:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship

engine = create_engine('sqlite:///users.db', echo=True)
Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

    def __repr__(self):
        return "<User(name='%s', fullname='%s', password='%s')>" % (
            self.name, self.fullname, self.password)

Base.metadata.create_all(bind=engine)
Session = sessionmaker(bind=engine)

session = Session()

users = session.query(User).all()
for user in users:
    print("User #%d with username=%s" % (user.id, user.name))

session.add(user)
session.commit()
session.close()

现在,我想通过PyCharm终端添加用户:

user = User(name='ed', fullname='Ed Jones', password='edspassword')

但是我遇到一个错误:

“用户”未被识别为内部或外部命令, 可操作的程序或批处理文件。

我在做什么错了?

谢谢:)

3 个答案:

答案 0 :(得分:0)

在访问python控制台之前输入python。

C:.../>python
Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> user = User(name='ed', fullname='Ed Jones', password='edspassword')

答案 1 :(得分:0)

窗口底部有一个控制台。或者至少应该如此。如果没有,请在终端窗口中键入

python

之后,您需要导入模型文件,在我的服务器上,我会这样做:

from app.models import User

然后您可以:

user = User(...)

就您而言,我认为您可能需要cd到包含上面带有您上面发布的代码的文件的目录。

然后,您可以执行python并直接导入文件。完成后,您将可以在控制台中访问class,并且可以手动添加用户。

但是,如果您右键单击数据库,则可以连接到该数据库(如果是本地数据库)并直接对行本身进行更改。

[更新]

转到终端->

类型cd C:\\path\to\pyfile->

类型python->

键入import mypyfile,然后您应该拥有User类

[替代方法]

您也可以直接从终端

cd C:\\...\...\pyfile

python myfile.py

另外,请确保在尝试上述操作之前激活venv,因为我可以猜测由于未安装sqlalchemy(但仅在venv中),该操作将失败。

答案 2 :(得分:0)

我实际上已经弄清楚了:(这次我使用的是GitBash)

首先从我的项目文件夹中激活我的虚拟环境source ~/venv/scripts/activate

然后输入python

import myfilename之后(不带“ .py”),

然后我可以from myfilename import User

现在user = User(name='ed', fullname='Ed Jones', password='edspassword')可以正常工作了:)