使用webui安装、更新、卸载插件和修改.evn.*
文件,并提供webui接入支持
对非电脑和手机用户不友好,可能出现错位
(我是css低手)
Warning
该插件需要fastapi支持
使用镜像站可能需要等待镜像站同步
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-manageweb
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-manageweb
pdm
pdm add nonebot-plugin-manageweb
poetry
poetry add nonebot-plugin-manageweb
conda
conda install nonebot-plugin-manageweb
打开 nonebot2 项目根目录下的 pyproject.toml
文件, 在 [tool.nonebot]
部分追加写入
plugins = ["nonebot_plugin_manageweb"]
webui默认地址ip:端口/mw/login
在 nonebot2 项目的.env
文件中添加下表中的必填配置
配置项 | 必填 | 默认值 | 说明 |
---|---|---|---|
mw_username | 否 | admin | 后台管理用户名 |
mw_password | 否 | admin | 后台管理密码 |
mw_key | 否 | ... | 后台管理token密钥 |
- api接入
使用此方法访问地址未/mw/api/xxx 也可以自行创建
自行创建
from nonebot_plugin_manageweb.utils import authentication
from nonebot import get_app, get_driver
DRIVER = get_driver()
@DRIVER.on_startup
async def web():
app: FastAPI = get_app()
@app.post("/mw/api/xxx", response_class=JSONResponse, dependencies=[authentication()])
async def _(user: UserModel):
pass
api接入
from nonebot_plugin_manageweb.web import BaseApiRouter
from nonebot_plugin_manageweb.utils import authentication
from fastapi import APIRouter
from fastapi.responses import JSONResponse
route = APIRouter()
@route.post(
'/xxx', response_class=JSONResponse, dependencies=[authentication()]
)
async def _():
pass
#添加api到BaseApiRouter
BaseApiRouter.include_router(home_route)
- amis界面添加
from amis import (
PageSchema,
Page,
....
)
from nonebot_plugin_manageweb.utils import background_css #背景图css
from nonebot_plugin_manageweb.page.main import admin_app
xxx_page = PageSchema(url='/地址', icon='图标', label='页面标题',
schema=Page(title='页面上方标题', body=...., style=background_css))
#添加页面到admin_app
admin_app.pages[0].children.append(xxx_page)
- 来自LittlePaimon的webui代码参考
- 来自nonebot-plugin-updater的nb安装代码