小编Flo*_*ian的帖子

29
推荐指数
5
解决办法
2万
查看次数

如何捕获错误1062"重复条目"独立于使用过的数据库/引擎?

在一个项目中,我开始使用MySQL作为数据库.我只是做一个插入而不是先检查,如果我得到代码为1062的IntegrityError异常,我知道有一个重复的条目并警告用户,这样做.

看起来基本上是这样的:

try:
    # add duplicate, nothing bad happens yet, is only in sqla session
    db.session.add(User(email='already_used_email@address_that_has_to_be_unique.com'))
    # commit, now the IntegrityError is raised, when sqla inserts
    db.session.commit()
except IntegrityError as e:
    db.session.rollback()
    # this is what i do with mysql, check the exception for code 1062
    # how can i replace this with something db independent?
    code, msg = e.orig
    if code == 1062:
        # send warning
        pass
Run Code Online (Sandbox Code Playgroud)

现在,对于一个,这使得已经无法用例如测试.内存中的sqlite.不好,但我可以忍受.

然而,第二,我可能(必须/希望其他超出此问题的范围)切换到Postgres.当然我可以更改代码(也)检查Postgres错误代码,但我希望有一种方法让SQLALchemy告诉我,一个重复发生独立于数据库.数据库方言抽象......?

python mysql postgresql sqlalchemy

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

从外部源获取可翻译文本到目录中

可能我忽略了一个明显的解决方案或者以错误的方式思考......

我有一个数量有限的文本,数据库中的单词,我希望显示转换为flask/jinja/babel webapp中的用户.例如."running"是"活动"列的可能值,对于我的德国用户来说应该是"laufen".

模板和代码中的单词被提取并放入目录中,但如何在目录中添加其他单词?有简单的文本文件提取器吗?

我唯一能想到的是,只需创建一个.py文件并在其中放入许多_('...')行,但这感觉错了......是吗?

python jinja2 babel

6
推荐指数
1
解决办法
374
查看次数

标签 统计

python ×2

babel ×1

flask ×1

jinja2 ×1

mysql ×1

postgresql ×1

sqlalchemy ×1

uwsgi ×1

werkzeug ×1