我是aiohttp的新手,下面有一個問題,首先,我在頁面中有一個按鈕,如下所示,<body><button class="button" name="click_me" onclick="click_me">Click Me</button></body>在python代碼中,我將函數定義如下,async def click_me(request): logger.info(f'test on click_me')async def handler(request): ... ... default code here ... ... 但是,當我打開瀏覽器并單擊“click_me”按鈕時,調試頁面顯示錯誤,Uncaught ReferenceError: click_me is not defined at HTMLButtonElement.onclick如何在python腳本中定義函數來捕捉click_me事件?
1 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
不,該onclick
屬性是指必須在您的頁面中加載的 Javascript 函數。如果您想從該點擊事件調用 Python 函數,您必須執行 HTTP 請求(或其他方式,還有許多其他方式),例如使用AJAX或fetch,到相應服務器的 url。例如
<body>
<button onclick="doFoo()"></button>
<script>
async function doFoo() {
const response = await fetch('http://YOURSERVER/foo')
// do whatever you want with your response
}
</script>
</body>
將調用foo此處定義的 Python 函數
from aiohttp import web
async def foo(request):
logger.info("button clicked")
return web.Response()
app = web.Application()
app.add_routes([web.get('/foo', foo)])
if __name__ == '__main__':
web.run_app(app)
添加回答
舉報
0/150
提交
取消