【问题标题】:Embedding Videos in my Django site在我的 Django 站点中嵌入视频
【发布时间】:2017-01-22 04:56:30
【问题描述】:

我不知道在 Django 中嵌入视频。 我将我的视频存储在数据库中。 我需要在我的 Django 站点中嵌入、显示和删除我的视频。

谁能给出正确的方向。

提前致谢。

【问题讨论】:

    标签: youtube-api django-1.10


    【解决方案1】:

    您好,这个问题有点棘手。

    Django 基本上是一个使用 python 创建 web 应用程序的框架,你是说你已经有一个 Django 网站,你没有解释你有什么,也没有指定你的视频格式(例如:二进制?或文件夹路径?还是网址?)所以有很多选择。

    这里有一个提示,如何使用 angularJS 创建一个 SPA(单页架构)HTML/CSS3/JS 来调用您的 API/网站 (django)

    • 在您的 django 项目根文件夹中创建名为“static”的文件夹
    • 在您的 django 项目根文件夹中创建名为“templates”的文件夹
    • 在“静态”中添加以下结构
      • 图片
      • js
      • CSS
    • 在“模板”中添加您的 html 文件
      • index.html

    1) 转到您的 settings.py 并添加以下路径

    • 为您的 HTML(templates)和 CSS/JS/IMG/VIDEOS(static)文件夹创建 3 个静态配置变量

      STATICFILES_DIRS=['/your_home_path/your_project/static/']
      STATIC_URL = '/static/'
      TEMPLATES_PATH = '/your_home_path/your_project/templates/'
      
    • 修改您的 TEMPLATES 静态变量以使用 TEMPLATES_PATH

      TEMPLATES = [
      {
          'BACKEND': 'django.template.backends.django.DjangoTemplates',
          'DIRS': [TEMPLATES_PATH],
          'APP_DIRS': True,
          'OPTIONS': {
              'context_processors': [
                  'django.template.context_processors.debug',
                  'django.template.context_processors.request',
                  'django.contrib.auth.context_processors.auth',
                  'django.contrib.messages.context_processors.messages',
              ],
          },
      },
      

      ]

    2) 转到你的 urls.py 文件并注册你的模板 HTML 文件,这样它就可以用作网站布局,也可以创建一个新的路由来测试一个新的控制器/动作

    url(r'^$', TemplateView.as_view(template_name="index.html")),
    url(r'testingwebsite/v1/api/test/action$', action_controller_name),
    

    3) 转到您的 views.py 文件并添加控制器操作代码,以便您可以做任何您想做的事情(GET/UPDATE/DELETE 视频)

    def action_controller_name(request):
        #Your_code_here: execute py scripts or call API or connect to DB
        #return json
        return HttpResponse(out, content_type="application/json")
    

    4) 在您的 views.py 中包含所需的库

    from django.http import HttpResponse
    #static files import
    from django.conf import settings
    from django.conf.urls.static import static
    

    如果您的数据库中有二进制格式的视频

    从数据库中读取它们并在临时文件夹中创建一个临时文件,以便您可以将视频 html 标签添加到您的 django 模板中

    如果您有此视频的网址或文件路径

    从数据库中读取它们,以便您可以将 video html 标签添加到您的 django 模板中

    如何在 HTML 中包含静态文件夹的内容文件(videos/images/css/js/etc)?

    {% static "images/logo.png" %}
    {% static "videos/myvideo.mp4" %}
    

    视频代码示例

    <video width="320" height="240" controls>
      <source src="{% static "videos/myvideo.mp4" %}" type="video/mp4">
      <source src="{% static "videos/myvideo.ogg" %}" type="video/ogg">
    Your browser does not support the video tag.
    </video>
    

    Img 标记示例

    <img alt="majordomo_logo" src="{% static "images/logo.png" %}" class="img-circle" width="60">
    

    **你可以对视频做同样的事情*

    如何在 HTML 上触发 angularJS 应用/控制器/服务的操作?

    • 在您的控制器中创建一个函数“selectEntity()”,然后从您的 HTML 中调用它,如下所示:

       <button type="button" class="btn btn-theme" ng-click="selectEntity()">Off</button>
      

    如何在你的 python 代码中使用静态文件? 例如:在“静态”文件夹中执行 python 脚本

    command="bash " + settings.STATICFILES_DIRS[0] + "pyscripts/clean-memory-mock.sh"
    
    p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    
    out, err = p.communicate()
    
    print out
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      • 1970-01-01
      • 2017-05-29
      • 2011-08-15
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多