#urls.py
path('pdf/',
views.generate_pdf),
#views.py
from pyppeteer import launch
import os
import asyncio
async def main():
browser = await launch()
page = await browser.newPage()
await page.goto("https://python.org")
await page.waitFor(1000)
await page.pdf({"path": "python.pdf"})
await browser.close()
async def generate_pdf(request):
print("Starting...")
await main()
print("PDF has been taken")
return HttpResponse("PDF has been generated")
我收到错误:信号仅在主解释器的主线程中起作用。
在独立的 Python 文件中运行时效果很好,但在 Django 中则不然。
我收到运行时错误此事件循环已在运行。
使用时
async def generate_training_pdf(request):
asyncio.get_event_loop().run_until_complete(main())
试试这个
async def lunch_browser(self):
return await launch(
# to avoid signal error
autoClose= False,
handleSIGINT=False,
handleSIGTERM=False,
handleSIGHUP=False,
ignoreHTTPSErrors=True,
defaultViewport={'width': 1020, 'height': 600}
)