在 django 中创建一个创建视频(使用 moviepy)并播放它的网络应用程序:从哪里开始?

Creating a web app in django that creates a video (with moviepy) and plays it: Where to start?

我想制作一个网络应用程序,用户可以:

** 随机视频将使用 python/moviepy 脚本创建,该脚本会从 Internet 下载一堆随机视频剪辑到我计算机上的目录中。然后将它们编译成一个视频(.mp4 文件)。

我已经完成了 python 脚本位,它成功地创建了视频文件。

为了使 Web 应用程序更好用,有人推荐我使用 django,这就是我遇到的问题!

到目前为止,我已经安装了 django 并掌握了基础知识。我的主页显示 "Hello world"。

我的问题是我从这里去哪里? 如何将我的 python/moviepy 脚本与 Django 连接? 我应该研究 django 中的哪些步骤、应用程序、组件等来制作这个东西?

我是编码新手,正在寻找一些指导。

谢谢!

据我所知,Django 适用于复杂站点,您应该改用 Flask。 (我正在学习Django,我对Flask一无所知,所以我会用它)

这是所需的设置:

  • 定义用于处理 URL 的 urlpatterns
  • 创建一个模型来存储您的视频
  • 为您的页面创建一个 django 模板 (html)
  • 定义用于呈现模板的视图(传递视频)
  • 也许 css 来设计它

您可以在每次重新加载时 运行 您的视频生成器(在视图中)并覆盖现有视频(在这种情况下您甚至不需要模型)或者您可以保存生成的视频并捕获URL 中的 ID(例如:https://yoursite.com/1),在这种情况下,视频仍可共享。

如果您选择第一个选项并且分享视频对您来说并不重要,那么您可以编写一个简单的 html 页面,其中包含一个视频和一个按钮。该按钮可以触发一个javascript函数到运行视频生成器python脚本并刷新页面(视频被覆盖),您可能需要等待脚本否则旧视频可以加载。

Restful API 是一种更高级的刷新视频的方式,无需重新加载页面。

在这些之后,您可以使用例如 Apache 服务器部署您的页面。

我试着给你一些指导(我正在自学)

希望对您有所帮助 :) 有这些教程。

如果您使用 FileField then your moviepy script should upload videos into that field, that field can save the video in a specified directory in MEDIA_ROOT(you can store your post based on date) then that field will store the URL to it (you need to specify MEDIA_URL in settings.py). You can define some sort of IDs to them, if video privacy is not important, then you can use the model IDs. These IDs can be obtained trough Path converters 创建模型。

在客户端,需要javascript。简单地 运行 显示视图中的脚本是可能的,但是用户将需要等待响应(并且浏览器应该 运行 进入超时状态)。 您应该查看 服务器发送的事件 。使用 Vue.js 你可以在等待事件(生成视频)时轻松显示一个加载元素,然后下载并切换到视频(参见 Django CRUD 应用教程) . python 脚本可以 运行 异步(你在视图中调用它)。

很多,我知道。 其实我现在就去学这些,有错误请见谅。