【问题标题】:Uvicorn/FastAPI executableUvicorn/FastAPI 可执行文件
【发布时间】:2021-07-30 19:53:25
【问题描述】:

我创建了一个供个人使用的基本应用程序。我的应用程序的支持使用带有 SQLite 数据库的 Fast Api。通常要运行我的启动和运行我的后端服务器,我必须使用以下命令:

// Using Virtual ENV
source env/Scripts/activate

pip install -r requirements.txt
uvicorn main:app --reload

我以前见过其他人创建了一个 python 可执行文件。我也想做同样的事情,但我需要它来启动 uvicorn 服务器。如何创建运行 uvicorn 服务器的 python 可执行文件?

还是只编写一个执行此操作的批处理脚本更好?

【问题讨论】:

    标签: python fastapi uvicorn


    【解决方案1】:

    有点像

    import uvicorn
    from fastapi import FastAPI
    from fastapi.middleware.cors import CORSMiddleware
    
    #  Import A module from my own project that has the routes defined
    from redorg.routers import saved_items 
    
    origins = [
        'http://localhost:8080',
    ]
    
    
    webapp = FastAPI()
    webapp.include_router(saved_items.router)
    webapp.add_middleware(
        CORSMiddleware,
        allow_origins=origins,
        allow_credentials=True,
        allow_methods=['*'],
        allow_headers=['*'],
    )
    
    
    def serve():
        """Serve the web application."""
        uvicorn.run(webapp)
    
    if __name__ == "__main__":
        serve()
    

    如果您需要传递参数,您可以使用 argparse/click 之类的方法来公开 cli 界面。

    【讨论】:

    • 谢谢你这么快的回答……我还是有点迷糊,你是说这段代码会把它变成可执行文件吗?还是我需要使用诸如“pyinstaller”之类的工具?...对于上面的代码,我不理解from redorg.routers import saved_items我应该在那里导入什么?对于我的后端,我有三个不同的文件来构建我的 sqlite 数据库 database.pymodels.pymain.py 我应该导入这些文件吗?
    • 可执行文件是指可以在windows上运行的exe吗?那么是的,您需要使用 pyinstaller。该导入适用于您定义的路线:fastapi.tiangolo.com/tutorial/bigger-applications
    猜你喜欢
    • 2022-10-24
    • 2021-08-31
    • 2022-01-23
    • 2021-10-14
    • 2021-11-07
    • 1970-01-01
    • 2021-04-02
    • 2023-03-18
    • 2021-08-17
    相关资源
    最近更新 更多