小编Ojo*_*mio的帖子

在 FastAPI 中使用 Depends 比仅调用依赖函数/类有什么优势?

FastAPI通过自己的依赖解析机制提供了一种管理依赖的方法,比如数据库连接。

它类似于pytest夹具系统。简而言之,您在函数签名中声明您需要的内容,FastAPI 将调用您提到的函数(或类)并在调用处理程序时注入正确的结果。

是的,它确实缓存(在单个处理程序运行期间),但是我们不能仅使用@lru_cache装饰器并在每次运行时简单地调用这些依赖项来实现相同的功能吗?我错过了什么吗?

python dependency-injection fastapi

17
推荐指数
1
解决办法
7358
查看次数

SQLAlchemy 的合并不会用关系中新对象的 id 填充外键

我的问题是,当我在会话中有一个新创建的对象(还没有主键,但会在刷新时获取它)并且我将另一个对象合并到该会话中,该对象通过关系引用第一个对象(示例中的b ) SQLAlchemy 不会使用前一个对象的主键填充后一个对象。相反,它只是从序列中生成下一个值。为什么会这样呢?

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker



engine = create_engine("postgresql+psycopg2://psql_admin:psql_admin@localhost/fm")



from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

from sqlalchemy import Integer, ForeignKey, VARCHAR, TEXT, Boolean, DateTime
from sqlalchemy.orm import relationship
from sqlalchemy.sql.schema import Column

class B(Base):
    __tablename__='B'
    id_=Column(Integer, primary_key=True)
    data = Column(VARCHAR(30))

class Rel(Base):
    __tablename__='Rel'
    id_a=Column(Integer, primary_key=True)
    id_b=Column(Integer, ForeignKey('B.id_'), primary_key=True)
    b = relationship(B)
    rel_data=Column(VARCHAR(30))


Session = sessionmaker(bind=engine)   
session = Session()
Base.metadata.create_all(engine, checkfirst=True)


first_b=B(id_=1, data='ololo')    
session.add(first_b)
session.commit()

session.add(Rel(id_a=800,id_b=1, rel_data='first relation data'))

second_b=B(data='foooo')
session.add(second_b)
x=session.merge(Rel(id_a=800, rel_data="second", …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

6
推荐指数
0
解决办法
1539
查看次数

Django不会以一个奇怪的错误开始"AttributeError:'module'对象没有属性'getargspec'"

当谈到Django的内部时,我有点缺乏经验,所以我现在完全陷入困境.它昨天工作,我不记得我已经改变了任何重要的事情.

当我转向时DEBUG=True,任何模块上的堆栈跟踪恰好是列表中的第一个

Traceback (most recent call last):
      File "/home/yury/PycharmProjects/mezzamine/findmeals/mezzamine/manage.py", line 28, in <module>
        execute_from_command_line(sys.argv)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
        utility.execute()
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 354, in execute
        django.setup()
      File "/usr/local/lib/python3.4/dist-packages/django/__init__.py", line 18, in setup
        from django.utils.log import configure_logging
      File "/usr/local/lib/python3.4/dist-packages/django/utils/log.py", line 13, in <module>
        from django.views.debug import ExceptionReporter, get_exception_reporter_filter
      File "/usr/local/lib/python3.4/dist-packages/django/views/debug.py", line 10, in <module>
        from django.http import (HttpResponse, HttpResponseServerError,
      File "/usr/local/lib/python3.4/dist-packages/django/http/__init__.py", line 4, in <module>
        from django.http.response import (
      File "/usr/local/lib/python3.4/dist-packages/django/http/response.py", line 13, in <module>
        from django.core.serializers.json …
Run Code Online (Sandbox Code Playgroud)

python django

4
推荐指数
1
解决办法
3335
查看次数

sub('a*| b','','bcd') - > bcd WAT?

今天我在正则表达式中偶然发现了一个奇怪的行为 - 匹配.我无法解释它,虽然我认为我对正则表达式很有经验

print re.sub('a*|b',  '', 'bcd')
Run Code Online (Sandbox Code Playgroud)

BCD

没有水珠的地方

print re.sub('a|b',  '', 'bcd')
Run Code Online (Sandbox Code Playgroud)

光盘

这是预期的.
我认为失败的选择不会阻止尝试其他人!

python regex

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