小编Kay*_*Kay的帖子

SQLAlchemy:如何将列添加到现有表中?

我正在尝试使用 SQLAchemy 将字段或列添加到现有表中。

下面是表类

class ReleaseVersion(Base):

    __tablename__ = 'versions'

    id = Column(Integer, primary_key=True, autoincrement=True)
    release = Column(String(128), nullable=False, unique=True)


    def __init__(self,release, id=None):

        if(id):
            self.id = id

        self.release = release
Run Code Online (Sandbox Code Playgroud)

我使用以下行初始化了表

myDB.ReleaseVersion.__table__.create(bind=self.engine, checkfirst=True)
Run Code Online (Sandbox Code Playgroud)

使用数据库一段时间后,我需要添加一个布尔字段“is_currentversion”,同时保留表的所有现有内容,但我不太确定如何执行此操作。

我应该手动为表创建字段并更新类吗?或者,如果在初始化函数中不存在,则在表类中添加字段并添加列?

python sqlalchemy flask flask-sqlalchemy

7
推荐指数
1
解决办法
1万
查看次数

如何找出我正在使用的python虚拟环境?

我的计算机中有多个虚拟环境,有时我不确定我使用的是哪个python虚拟环境。有没有一种简单的方法可以找出我连接到哪个虚拟环境?

python python-2.7 python-venv

3
推荐指数
3
解决办法
2512
查看次数

如何使用 HTTPS 在 CherryPy WSGI 服务器 (Cheroot) 上运行 Flask 应用程序?

我现在使用 HTTP 在 CherryPy Cheroot WSGI 服务器上运行 Python 2.7 Flask 应用程序,如下所示。

from cheroot.wsgi import Server as WSGIServer
from cheroot.wsgi import PathInfoDispatcher as WSGIPathInfoDispatcher

from MyFlaskApp import app

d = WSGIPathInfoDispatcher({'/': app})
server = WSGIServer(('0.0.0.0', 80), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能从这里转移到 HTTPS?我找到了以下说明,但它似乎不适用于我的应用程序。

from cheroot.server import HTTPServer
from cheroot.ssl.builtin import BuiltinSSLAdapter

HTTPServer.ssl_adapter = BuiltinSSLAdapter(
        certificate='cert/domain.crt', 
        private_key='cert/domain.key')
Run Code Online (Sandbox Code Playgroud)

我可以将上述示例应用到 Cheroot 上的 Flask 应用程序吗?如果没有,Cheroot 上用于 HTTPS 的 Flask 应用程序的简单示例是什么?

wsgi cherrypy flask python-2.7 cheroot

3
推荐指数
1
解决办法
4547
查看次数

如何使用ssl启动flask_socketio应用程序?

我应该如何使用 SSL 将 app.run() 转换为 sockio.run() ?

我有下面的应用程序启动代码与 Flask 开发服务器一起运行

if __name__=='__main__':
    app.run(ssl_context=(ssl_cert, ssl_key))
Run Code Online (Sandbox Code Playgroud)

我现在尝试使用 socketio 启动它,如下所示

if __name__=='__main__':
    socketio.run(app, host='0.0.0.0', port=80, debug=True)
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何将证书传递到此调用中。
我需要做什么才能使这项工作成功?

python flask eventlet socket.io flask-socketio

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

尝试在 CherryPy 服务器上部署 Flask 应用程序

我试图在 CherryPy 服务器上部署我的 Flask 应用程序。我喜欢它的简单和简约的性质。

所以我 PIP'ed CherryPy 如下

pip install CherryPy-15.0.0-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)

并编写如下脚本-许多来源建议的非常普遍

from cherrypy import wsgiserver
from hello import app

d = wsgiserver.WSGIPathInfoDispatcher({'/': app})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 80), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我有导入错误。经过几次谷歌搜索后,我了解到我必须将导入行更改为 cheroot 才能使其工作。

from cheroot.wsgi import Server
from cheroot.wsgi import PathInfoDispatcher
Run Code Online (Sandbox Code Playgroud)

现在,我的代码运行良好。但是,如果这是使用 CherryPy WSGI 服务器的正确方法,或者我是否使用了错误版本的 CherryPy,我有点困惑。我很困惑,因为 Cheroot 似乎已经超过一岁了(可以追溯到 2014 年),但我在 CherryPy WSGI 服务器上的 Flask 周围找到的所有信息都在使用from cherrypy import wsgiserver,而不是from cheroot.wsgi import Server,甚至是最新的帖子。

这让我不确定我是否在做正确的事情。

有人可以解释一下这种混乱吗?

python cherrypy flask cheroot

2
推荐指数
1
解决办法
5285
查看次数