首页 > 编程语言 >Python文件嵌入html(vue)中,在浏览器中跑起来

Python文件嵌入html(vue)中,在浏览器中跑起来

时间:2024-06-19 14:33:43浏览次数:10  
标签:none vue Python text pyscript Vue html

近期有个需求,之前项目是用python写的,需要包一层html,在浏览器中跑起来。

推荐框架PyScript  https://pyscript.net/

 

文档中有一些在线的example

 

在本地试了试

<!doctype html>

<html>

<head>
  <!-- Recommended meta tags -->
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">

  <!-- PyScript CSS -->
  <link rel="stylesheet" href="https://pyscript.net/releases/2024.1.1/core.css">

  <!-- This script tag bootstraps PyScript -->
  <script type="module" src="https://pyscript.net/releases/2024.1.1/core.js"></script>

  <style>
    #loading {
      outline: none;
      border: none;
      background: transparent
    }

    body {
      margin: 0;
    }

    .pyscript {
      margin: 0.5rem;
    }

    html {
      font-family:
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        "Helvetica Neue",
        Arial,
        "Noto Sans",
        sans-serif,
        "Apple Color Emoji",
        "Segoe UI Emoji",
        "Segoe UI Symbol",
        "Noto Color Emoji";
      line-height: 1.5;
    }

    py-terminal {
      display: none !important;
    }

    nav {
      position: sticky;
      width: 100%;
      top: 0;
      left: 0;
      z-index: 9999;
    }

    .logo {
      padding-right: 10px;
      font-size: 28px;
      height: 30px;
      max-width: inherit;
    }

    .title {
      text-decoration: none;
      text-decoration-line: none;
      text-decoration-style: initial;
      text-decoration-color: initial;
      font-weight: 400;
      font-size: 1.5em;
      line-height: 2em;
      white-space: nowrap;
    }

    .app-header {
      display: flex;
      align-items: center;
      padding: 0.5rem 1rem;
    }
  </style>
</head>

<body>
  <div id="#app">
    <dialog id="loading">
      <h1>Loading...</h1>
    </dialog>

    <nav class="navbar" style="background-color: hsl(0, 0%, 0%)">
      <div class="app-header">
        <a class="title" href="" style="color: #f0ab3c">Hello World</a>
      </div>
    </nav>

    <section class="pyscript">
      <script type="py" src="./main.py" async terminal></script>
      <script type="py">
          from pyscript import display
          from datetime import datetime
          now = datetime.now()
          display(now.strftime("%m/%d/%Y, %H:%M:%S"))
      </script>
    </section>
  </div>
  <script src="js/vue.min.js"></script>
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
      },
      methods: {
        off: function () {
        },
        off() {
        },
      },
      created() {
      }
    });
  </script>
</body>

</html>

在本地文件夹中

python直接写在代码里可以跑起来,但是外部引入的报错

发现,不能在文件夹中直接打开,需要起一个本地服务地址,类似http://127.0.0.1:8848/

也是可以正常跑起来

 

但是,我需要将他放到vue项目里面,而examples中的PyScript的js是外链,且js的type是type="module",不知道如何引入

更难过的是在淘宝镜像中没有对应的模块

 

接下来就需要另一个集成框架pyscript-vue-starter出场了

github 地址 https://github.com/FabioRosado/pyscript-vue-starter

pyscript-vue-starter中用到 Vue 3ViteTypeScriptTailwind CSSJest 和 Playwright

使用此模板,可以快速开始使用Pyscript和Vue 3。Pyscript使能够在Vue组件中编写Python代码,并且它还提供了在Vue组件中使用Python库的方法。

在index.html文件的头文件中添加并加载Pyscript。这将允许在Vue组件和页面中使用Pyscript。

 代码运行及打包,依然是vue的一套。

至此,对于前端来说就容易了。

 

标签:none,vue,Python,text,pyscript,Vue,html
From: https://www.cnblogs.com/yeziyou/p/18256189

相关文章

  • nuxt3+vue3+vite+TS实现国际化
    前言博主最近打算用Nuxt3重构了自己SSR博客,打算添加国际化功能,众所周知,实现国际化已是一个很常见的功能。用户可以根据自己的喜好,设置页面的自己合适的语言,从而实现国际化浏览。这样用户体验度会大大提升。博客用的nuxt3+vue3+vite+TS实现国际化,国际化用的vue-i18n,下面我给大......
  • 马尔可夫排队网络——Python分析
    马尔科夫排队网络(MarkovianQueueingNetworks)是一类特殊的排队网络,假设系统中的到达过程和服务时间均遵循指数分布,系统状态之间的转移遵循马尔可夫性质。这些假设使得马尔科夫排队网络可以通过解析方法进行分析,从而为实际系统的设计和性能优化提供理论依据。通过理论推导和模型构......
  • 基于html5的演唱会购票系统的设计与实现论文
    目录基于html5的演唱会购票系统的设计与实现11系统概述11.1研究背景11.2研究目的11.3系统设计思想12相关技术32.1MYSQL数据库32.2B/S结构32.3SSM框架简介42.5HTML5简介63系统分析63.1可行性分析63.1.1技术可行性73.1.2经济可行性73.1.3操......
  • Vue3如何绑定全局方法和变量
    Vue2中Vue.prototype绑定全局方法,此写法在Vue3已经不存在了。与任何全局的东西一样,应该谨慎使用。Vue3使用provide/inject或者app.config.globalProperties进行绑定如果全局属性与组件自己的属性冲突,组件自己的属性将具有更高的优先级。 一、provide/inject方法......
  • 基于SpringBoot+Vue的高校爱心捐赠系统设计与实现(源码+lw+部署+讲解)
    文章目录前言详细视频演示具体实现截图技术可行性分析技术简介后端框架SpringBoot前端框架Vue系统开发平台系统架构设计业务流程分析为什么选择我们自己的公众号(一点毕设)海量实战案例代码参考数据库参考源码及文档获取前言......
  • Python快速进修指南:函数基础
    今天介绍的是函数,讨论函数以及与Java方法的区别。python具体学习资料在下方分享:与Java方法不同,函数不需要像Java方法一样讲究修饰符等其他特性,它只需要使用"def"关键字进行声明。另外,函数的参数也与Java方法有所不同,Java方法中不存在默认参数的概念,而在Python中,函数参数是可......
  • 程序猿大战Python——文件操作、异常、模块——常见处理异常方式
    快速入门异常==目标:==掌握异常的快速入门使用。当程序中遇到了异常时,通常程序会出现崩溃情况。为了不让程序崩溃,就可以使用异常来快速处理。异常处理语法:try: 可能发生异常的代码except: 如果出现异常时,执行的代码说明:try、except都是关键字,用于处理异......
  • 程序猿大战Python——文件操作、异常、模块——导入模块
    导入模块的方式==目标:==了解导入模块的方式有哪些?模块指的是:以.py结尾的Python文件。注意:模块名属于标识符。在模块中,能定义函数、变量和类等,也能包含其他一些可执行的代码,比如print(xxx)、importxx等。使用模块前,要先导入模块。导入模块有3种方式:import模块名1[,......
  • HTML特殊字符:对钩与叉号
    表示“对钩”的特殊转义符号汇总:特殊符号编码描述✓&#10003;CHECKMARK手写体对钩(细)✔&#10004;HEAVYCHECKMARK手写体对钩(粗)√&radic;平方根、常用于表示对钩符号☑&#9745;BALLOTBOXWITHCHECK方框对钩✅&#9989;WHITEHEAVYCHECKMAR......
  • HTML网页设计作业:文化网站设计——基于HTML古典中国风工艺美术网页设计(9页)
    ......