You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Brython中使用Vuetify?示例代码转换需求

Brython + Vuetify 轮播组件可运行示例

完整代码

<!DOCTYPE html>
<html>
<head>
  <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <div id="app">
    <v-app>
      <v-carousel cycle>
        <v-carousel-item v-for="(item, i) in items" :key="i" :src="item.src">
          <v-card class="pa-6" dark>
            <v-card-title class="text-h4">{{ item.title }}</v-card-title>
            <v-card-text>{{ item.text }}</v-card-text>
            <v-btn @click="showAlert(item.title)" color="primary">了解更多</v-btn>
          </v-card>
        </v-carousel-item>
      </v-carousel>
    </v-app>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/brython@3.10.5/brython.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/brython@3.10.5/brython_stdlib.js"></script>
  <script>
    window.onload = function() {
      brython(1);
    };
  </script>
  <script type="text/python">
    from browser import window, alert
    import js

    # 初始化Vuetify实例
    vuetify = js.Vuetify.new()

    # 定义轮播项数据
    def get_data():
        return {
            'items': [
                {
                    'src': 'https://cdn.vuetifyjs.com/images/carousel/squirrel.jpg',
                    'title': '松鼠探险',
                    'text': '观看这只可爱的松鼠探索森林。'
                },
                {
                    'src': 'https://cdn.vuetifyjs.com/images/carousel/sky.jpg',
                    'title': '高空美景',
                    'text': '山脉上空的美丽云朵。'
                },
                {
                    'src': 'https://cdn.vuetifyjs.com/images/carousel/bird.jpg',
                    'title': '观鸟时刻',
                    'text': '自然栖息地中的多彩鸟类。'
                }
            ]
        }

    # 按钮点击事件处理方法
    def show_alert(title):
        alert(f"你点击了「{title}」!")

    # Vue应用配置
    app_config = {
        'el': '#app',
        'vuetify': vuetify,
        'data': get_data,
        'methods': {
            'showAlert': show_alert
        }
    }

    # 创建并挂载Vue应用
    app = js.Vue.new(app_config)
  </script>
</body>
</html>

核心说明

  • 访问Vue和Vuetify:通过Brython的js模块直接调用全局的Vue和Vuetify对象,无需额外封装。
  • 数据定义:遵循Vue要求,用Python函数get_data()返回包含轮播项的字典,确保组件每次实例化时都能获取独立的数据副本。
  • 方法绑定:将Python函数show_alert映射到Vue的methods中,模板里的@click="showAlert(item.title)"会触发该函数。
  • Vuetify集成:先初始化Vuetify实例,再将其传入Vue应用配置,即可正常使用所有Vuetify组件。

这个示例实现了自动循环的轮播,每个轮播项包含图片、标题、描述文本和可交互按钮,点击按钮会触发Brython的弹窗提示。

内容的提问来源于stack exchange,提问作者Osh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:01:39