ExtJs 转 DJango url 查询参数

2024-02-06

好吧,这是一个很长的问题。我正在使用 ExtJS 和 Django 创建一个网站。我在互联网上搜索了如何在获取 IFrame 时向 url 添加查询参数。所以基本上我有这个在 ExtJS 中创建一个面板,其中有一个 html 页面。我希望能够在 url 中传递端口号,这样当它调用 html 时,它会自动获得要使用 vnc 连接的端口号。我的 VNC 客户端是 noVNC

var noVNC = Ext.create('Ext.panel.Panel', {
    title: "noVNC",
    frame: false,
    title: false,
    width: '100%',
    height: '100%',
    layout: 'fit',
    items: [{
        xtype: "component",
            autoEl: {
                tag: "iframe",
                src: "/noVNC"
            }
    }]
});

起初我以为我可以这样做

src: "/noVNC?port=5900"

然而,(通过研究)我意识到你必须编辑views.py和urls.py 我想我的 urls.py 是正确的

from django.conf.urls.defaults import *

urlpatterns = patterns('',
     url(r'^$', 'kfe.views.index'),
     url(r'^index$', 'kfe.views.index'),
     url(r'^noVNC/(?P<port>\d+)/$' , 'kfe.views.noVNC'),
)

但我不知道如何使用views.py

def noVNC(request):
     return render(request, 'noVNC_Auto.html', content_type='text/html')

希望这是足够的信息。如果不告诉我

Thanks


好吧,由于我的条件,我修复它的方式非常容易(我不需要views.py 中的任何参数)。
所以我所做的是在我的 IFrame html 页面中我这样做了

window.onload = function () {
        con_port = "?port=" + WebUtil.getQueryVar('con_port', null);

在 ExtJS 中我做了这个

var noVNC = Ext.create('Ext.panel.Panel', {
    title: "noVNC",
    frame: false,
    title: false,
    width: '100%',
    height: '100%',
    layout: 'fit',
    items: [{
        xtype: "component",
            autoEl: {
                tag: "iframe",
                src: "/noVNC?con_port=5901"
            }
    }]
});

现在我只是硬编码在端口号中,但您可以将端口号添加到字符串中,如下所示

src: "/noVNC?con_port=590" + port

views.py

def noVNC(request):
    return render(request, 'noVNC_Auto.html', content_type='text/html')

urls.py

urlpatterns = patterns('',
    url(r'^$', 'kfe.views.index'),
    url(r'^index$', 'kfe.views.index'),
    url(r'^noVNC$' , 'kfe.views.noVNC'),
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ExtJs 转 DJango url 查询参数 的相关文章

随机推荐