当前位置:首页 > 报告详情

珍惜想法 尊重规范-陈泊涵.pptx

上传人: 2*** 编号:154995 2024-02-04 13页 1.88MB

1、IDEA FIRST AND BE PYTHONIC IN NEWBORN PYTHON PROJECT.主讲人:西南大学 2023级软件工程 陈泊涵Python is a programming language that lets you work quickly and integrate systems more effectively.www.python.orgcontextlib.asynccontextmanagerasync def db_session()-AsyncContextManagerAsyncSession:async with async_session_ma

2、ker()as session:yield session await mit()进入:session.begin()transaction._aenter_()yield session离开:transaction._aexit_()session._aexit_()await mit()#define the object without orm session#this kind of object can only invoke methods end with rawclass Raw(GenericT):def _init_(self,obj:T):self.object:T=ob

3、j def _getattribute_(self,name):attribute=super()._getattribute_(name)if inspect.ismethod(attribute):if not name.endwith(_raw):log(fORM object type(self.object)invoke a sql-related function(name)without database session.method invoke has been canceled)return#cancel the method invoked return attribut

4、e def _getattr_(self,name):return getattr(self.object,name)class Score(Base):staticmethod async def from_base(info:ScoreBase)-RawScore:pass async def submit_raw(self)-OptionalScore:passasync def require_score(score_id:int,user:User=Depends(require_user):async with database_session()as session:score=

5、await Score.from_id(session,score_id)if score is None:raise APIExceptions.score_not_exist if score.user_id!=user.id:raise APIExceptions.score_not_belongings return scorerouter.patch(/score_id,response_model=ScoreRead)async def patch_score(info:ScoreUpdate,score:Score=Depends(require_score):async wit

6、h database_session()as session:patched_score=await database.partial_update(session,score,info)return patched_scoreutil.create_proxy_methods(Session,:class:_orm.Session,:class:_asyncio.AsyncSession,classmethods=object_session,identity_key,me

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了Python编程语言及其在软件工程中的应用。首先,强调了在新生Python项目中要注重IDEA的首位,并遵循Pythonic原则。其次,引用了Python官方网站的描述,指出Python是一种能让开发者快速工作并有效集成系统的编程语言。接着,通过一个示例代码片段,展示了如何在Python中使用异步上下文管理器和ORM(对象关系映射)会话。然后,定义了一个名为`Raw`的类,该类只能调用以"raw"结尾的方法,用于取消没有ORM会话的SQL相关调用。文章还包含了几个与数据库操作相关的函数和类方法,如`from_base`、`submit_raw`和`require_score`,以及一个用于更新分数的API端点`patch_score`。最后,通过`AsyncSession`类展示了如何创建可反转的代理方法,并对`Session`对象进行操作。
"Python编程中的ORM对象如何使用?" "如何在Python项目中实现异步数据库会话管理?" "如何创建一个只能调用特定方法的ORM对象?"
客服
商务合作
小程序
服务号
折叠