shiter 2023-06-22 08:42 采纳率: 71.4%
浏览 67
已结题

Django template 中如何获取 App 中的变量值

template 中有个websocket 需要获取 配置文件中的 ip 和port

from django.apps import AppConfig
from selenium import webdriver
import json

class myappConfig(AppConfig):
    default_auto_field = "django.db.models.BigAutoField"
    name = "myapp"
    config_file_path = r'.\config.json'

    with open(config_file_path, 'r', encoding='utf8') as fp:
        opt = json.load(fp)
        print('[INFO] mysite Config:', opt['mysite'])
        opt_site = opt['mysite']
    
    IP = opt_site['IP']

在 templates 的html 中应该如果获取到这个ip 以便 js 中可以连接呢?

var IP = "{% ??这块应该咋写 %}"

var ws = new WebSocket(IP);

注意,这个 IP属于配置项 ,我认为不通过render 的方式进行传入比较好吧,是否有哪个对象可以直接读取?

  • 写回答

4条回答 默认 最新

  • PhoenixRiser 2023-06-22 09:16
    关注

    TechWhizKid参考GPT回答:

    在视图函数中获取到配置文件中的 IP 和端口,通过 Django 模板语言将它们传递给你的模板。具体操作步骤:

    1. 在视图函数中,读取配置文件并获取 IP,然后将 IP 作为一个变量传递给模板。
    from django.shortcuts import render
    import json
    
    def your_view_function(request):
        config_file_path = r'.\config.json'
        with open(config_file_path, 'r', encoding='utf8') as fp:
            opt = json.load(fp)
            opt_site = opt['mysite']
        IP = opt_site['IP']
        return render(request, 'your_template.html', {'IP': IP})
    

    要将 'your_template.html' 替换为实际模板的名称,而 your_view_function 则应替换为你实际的视图函数名称。
    2. 在 HTML 模板中,用 Django 模板语言获取 IP。

    var IP = "{{ IP }}";
    
    var ws = new WebSocket(IP);
    

    上面的 "{{ IP }}" 语句就是 Django 模板语言中的变量标记,它将被替换为从视图函数传递过来的 IP 值。
    这样,你就可以在模板中使用配置文件中的 IP 了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月30日
  • 已采纳回答 6月22日
  • 修改了问题 6月22日
  • 创建了问题 6月22日

悬赏问题

  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示