aiohttp开发工具
项目描述
为aiohttp提供的开发工具。
aiohttp-devtools提供了一些在开发使用aiohttp及其相关库的应用程序时非常有用的工具。
安装
pip install aiohttp-devtools
使用
aiohttp-devtools 命令行界面(及其简写别名 adev)包含两个子命令:runserver 和 serve。
runserver
提供了一种简单的本地服务器,以便在开发过程中运行您的应用程序。
用法很简单:
adev runserver <app-path>
注意: adev runserver <app-path> 将导入整个文件,因此它不与 web.run_app(app) 一起工作。但是,您可以使用 if __name__ == '__main__': web.run_app(app)。
app-path 可以是一个包含已识别默认文件(app.py 或 main.py)的目录的路径,或者是一个特定文件的路径。可以使用 --app-factory 选项来定义从应用程序路径文件中调用的方法,如果不提供,则尝试一些默认方法名称(例如 app、app_factory、get_app 和 create_app,它们可以是变量、函数或协程)。
所有 runserver 参数都可以通过环境变量设置。
runserver 有一些有用的功能:
livereload 将在您的代码更改时重新加载浏览器中的资源,而无需刷新,有关更多信息,请参阅 livereload。
静态文件 与主应用程序分开提供服务(通常在 8001 而您的应用程序在 8000),这样您就不必污染应用程序来提供仅在本地需要的静态文件。
有关更多信息,请参阅 adev runserver --help。
serve
与 runserver 类似,但仅提供静态文件服务。
用法很简单:
adev serve <path-to-directory-to-serve>
与 runserver 类似,您将获得良好的实时重载和访问日志。有关更多信息,请参阅 adev serve --help。
教程
为了演示 adev 与 create-aio-app 结合使用时可以做什么,让我们通过创建一个新的应用程序来操作。
首先,让我们创建一个干净的工作 Python 环境,并安装 aiohttp-devtools 和 create-aio-app。
(假设您已安装 python、pip 和 virtualenv)
mkdir my_new_app && cd my_new_app
virtualenv -p `which python3` env
. env/bin/activate
pip install aiohttp-devtools create-aio-app
现在,我们准备使用 create-aio-app 来构建我们的新应用程序,并将项目命名为 my_new_app,该名称与当前目录相同。
我们将明确选择不使用数据库以简化本教程,但您可以选择删除此选项并选择使用适当的数据库。
只需按回车键即可选择所有选项的默认值。
create-aio-app my_new_app --without-postgres
就是这样,您的应用程序现在已创建。您可能想查看本地目录的文件树。
在您运行应用程序之前,您需要安装其他要求,幸运的是,create-aio-app 已在 requirements/development.txt 中列出,要安装,只需运行
pip install -r requirements/development.txt
然后
adev runserver
使用
您的应用程序应正在本地主机:8000 上提供服务(您可以在浏览器中与之交互)。
您的静态文件正在本地主机:8001 上提供服务,adev 已配置应用程序以了解这一点,因此它应该能够正确渲染。
对应用程序代码(.py 文件)的任何更改都应导致服务器重新加载,对任何文件(.py 以及 .jinja、.js、.css 等)的任何更改都将以 livereload 的形式提示浏览器重新加载所需的页面。
就是这样,开始开发。
项目详细信息
aiohttp-devtools-1.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aae66fc9dd36b6c13e1ca381004dfaa4db6ba0dd50764c8ae3a49c1ed43f9587 |
|
MD5 | e9fc6399a189304eeba226faee355d00 |
|
BLAKE2b-256 | ae914e65d0a09fb2d13aa587d50d2ceb72335db5b22adac2106bf7da0d601b63 |
aiohttp_devtools-1.1.2-py38.py39.py310.py311-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d8545e217146df97459b3765fd786c98d0851c79d56162ad8d4145f719ab0391 |
|
MD5 | ce751e691d1db820cf4d8c04fbf228d5 |
|
BLAKE2b-256 | e6f765968b2654aa699bf09aa5409170774e11e5f702e448ddfb0084cf9577da |