Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy-在模型内使用主键实例进行操作_Python_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy-在模型内使用主键实例进行操作

Python SQLAlchemy-在模型内使用主键实例进行操作,python,sqlalchemy,Python,Sqlalchemy,我想从ID生成一些唯一的URL,目的是在某些端点的末尾追加。结果将类似于…/32dwr4。我想在实例化时根据主键id将这些短URL插入数据库 我不知道模型内部是否存在某种“冲洗”操作: class Storm(db.Model): id = db.Column(db.Integer, primary_key=True) _url = db.Column(db.String(200), index=True) ## Relationships @hybrid_p

我想从ID生成一些唯一的URL,目的是在某些端点的末尾追加。结果将类似于…/32dwr4。我想在实例化时根据主键id将这些短URL插入数据库

我不知道模型内部是否存在某种“冲洗”操作:

class Storm(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    _url = db.Column(db.String(200), index=True)

    ## Relationships

    @hybrid_property
    def url(self):
        return self._url

    @url.setter
    def _set_url(self, plaintext):
        self._url= base64.b64encode(plaintext)

    def __init__(self, name, question, *):
        self.name = name
        self.question = question
        self.url = self.id  # <<------ is it possible to pass its id on the fly, convert it through the setter and store it?
class风暴(db.Model):
id=db.Column(db.Integer,主键=True)
_url=db.Column(db.String(200),index=True)
##关系
@杂化性
def url(自我):
返回self.\u url
@url.setter
定义设置url(自身,纯文本):
self._url=base64.b64encode(纯文本)
定义初始(自我、姓名、问题*):
self.name=名称
self.question=问题

self.url=self.id#非常感谢。这给了我多种解决方案,但考虑到我想将models.py与会话(在视图中调用)分开,我无法确定一个好的解决方案。。。我正在读这篇文章,但我想也是同样的问题。它需要将事件绑定到会话。有什么想法吗?现在我刚刚创建了一个新方法,我在init:def def addurl(self,storm_id):self.url=str(storm_id).encode()之后调用了它,非常感谢。这给了我多种解决方案,但考虑到我想将models.py与会话(在视图中调用)分开,我无法确定一个好的解决方案。。。我正在读这篇文章,但我想也是同样的问题。它需要将事件绑定到会话。有什么想法吗?现在我刚刚创建了一个新方法,在init:def-def-addurl(self,storm\u-id):self.url=str(storm\u-id).encode()之后调用