我试图根据我的views.py放置一个url,但它返回错误:

Reverse for 'transmition' not found. 'transmition' is not a valid view function or pattern name.

enter image description here

project urls.py:

from django.contrib import admin
from django.urls import path, include

from django.conf.urls.static import static
from django.conf import settings
from plataforma.views import *
from django.views.generic.base import TemplateView

urlpatterns = [
                  path("admin/", admin.site.urls),
                  path('contas/', include('django.contrib.auth.urls')),
                  path('', TemplateView.as_view(template_name='index.html'), name='index'),
                  path('plataforma/', TemplateView.as_view(template_name='plataforma.html'), name='plataforma'),
                  path('plataforma/stream', TemplateView.as_view(template_name='stream.html'), name='stream'),
              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

app urls.py:

from django.urls import path

from .views import *

urlpatterns = [
    path('plataforma', PlataformaView.as_view(), name='plataforma'),
    path('stream/', StreamView.as_view(), name='stream'),
    path('transmition/', transmition, name='transmition'),
]

app views.py:

from django.shortcuts import render, redirect
from django.contrib import messages
from django.core.mail import EmailMessage
from django.views.decorators import gzip
from django.views.generic import TemplateView
from django.http import StreamingHttpResponse

import cv2
import threading


@gzip.gzip_page
def transmition(request):
    try:
        cam = VideoCamera()
        return StreamingHttpResponse(gen(cam), mimetype="multipart/x-mixed-replace;boundary=frame")
    except:
        pass
    # return render(request, 'stream.html')


class VideoCamera(object):
    def __init__(self):
        self.video = cv2.VideoCapture(
            "rtsp://jorge:jorge33621005@189.124.26.190:554/cam/realmonitor?channel=1&subtype=1")
        (self.grabbed, self.frame) = self.video.read()
        threading.Thread(target=self.update, args=()).start()

    def __del__(self):
        self.video.release()

    def get_frame(self):
        image = self.frame
        _, jpeg = cv2.imencode('.jpg', image)
        return jpeg.tobytes()

    def update(self):
        while True:
            (self.grabbed, self.frame) = self.video.read()


def gen(camera):
    while True:
        frame = camera.get_frame()
        yield (b'--frame\r\n'
               b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')


class PlataformaView(TemplateView):
    template_name = 'plataforma.html'


class StreamView(TemplateView):
    template_name = 'stream.html'

stream.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1>Test</h1>
  <img src="{% url 'transmition' %}">
</body>
</html>

由于我是初学者,我不能在HTML页中传输RTSP流.我需要流媒体和样式的‘传输’功能.

推荐答案

你可以在app的urls.py中定义app_name,如下所示:

from django.urls import path

from .views import *

app_name='plataforma'

urlpatterns = [
    path('', PlataformaView.as_view(), name='plataforma_view'),
    path('stream/', StreamView.as_view(), name='stream'),
    path('transmition/', transmition, name='transmition'),
]

然后在调用URL标记时使用它,如:

<img src="{% url 'plataforma:transmition' %}">

你可以根据你的需要给任何app_name英镑.

编辑

您还应该删除项目的urls.py中不必要的路由,因此它应该如下所示:

from django.contrib import admin
from django.urls import path, include

from django.conf.urls.static import static
from django.conf import settings
from plataforma.views import *
from django.views.generic.base import TemplateView

urlpatterns = [
    path("admin/", admin.site.urls),
    path('contas/', include('django.contrib.auth.urls')),
    path('', TemplateView.as_view(template_name='index.html'), name='index'),
    path('plataforma/', include('plataforma.urls'), namespace='plataforma')

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Python相关问答推荐

将数组操作转化为纯numpy方法

零填充2D数组上的Numpy切片

想要使用Polars groupby_Dynamic来缩减时间序列收件箱(包括空垃圾箱)

使用Python Great Expectations和python-oracledb

如何在Python中增量更新DF

使用Python Cerberus初始化一个循环数据 struct (例如树)(v1.3.5)

Tkinter滑动条标签.我不确定如何删除滑动块标签或更改其文本

如何使用SubProcess/Shell从Python脚本中调用具有几个带有html标签的参数的Perl脚本?

如果条件为真,则Groupby.mean()

比较2 PD.数组的令人惊讶的结果

将两只Pandas rame乘以指数

Mistral模型为不同的输入文本生成相同的嵌入

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

对象的`__call__`方法的setattr在Python中不起作用'

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

什么是最好的方法来切割一个相框到一个面具的第一个实例?

CommandeError:模块numba没有属性generated_jit''''

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

numpy.unique如何消除重复列?