位置: IT常识 - 正文

基于Vue+Python的应用搭建——前端[1](pycharm vue)

发布时间:2024-01-15
基于Vue+Python的应用搭建——前端 基于Vue的应用前端GUI搭建引言1. 概览1.1 总体结构1.2 项目编译时会发生什么1.3 路径会被如何定位2. 响应式组件2.1 用CSS调节组件大小和间距2.2 组件传参引用

推荐整理分享基于Vue+Python的应用搭建——前端[1](pycharm vue),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python和vue,python和vue结合开发前端,基于vue的论文,python和vue结合开发前端,pycharm vue,python和vue结合开发前端,python和vue结合开发前端,python和vue结合开发前端,内容如对您有帮助,希望把文章链接给更多的朋友!

这篇文章的目标是跟进Vue 3.2发布以来前端的新进展和自己对于基于Vue和Python搭建前后端应用的实践经验和新理解, 搭建一个尽量简单/清晰/实用/有参考价值的前端GUI页面. 该GUI页面尽管是基于WEB技术实现, 但也为移植到基于Flask和Webview的Python应用中预留了接口. 这篇文章包含的一些技术细节希望可以给未来的自己和朋友们带来价值.

引言

时隔三年, 回看当初断更的博客——如何用 Vue.js + Electron 把你的 Python 控制台应用套上好看的 GUI——感到颇为惭愧, 为当时雄心壮志开坑不填而惭愧, 同时也为自己这三年中没有更加勤奋精进惭愧.

当初搭建基于Vue的前端应用时对于HTML/JS/CSS等WEB前端技术一窍不通, 一番折腾之后终于弄出了一个能用的页面. 中间走了不少弯路不谈, 里面的实现也谈不上简单明晰. 特别是用到JS去写前端逻辑时, 从C/C++这样的强类型语言启蒙的我感到JS的语法简直时一团浆糊. 这样尽管这段时间的开发实践让我对JS的实用性和接受度颇为改观, 但我的"JS语法好似答辩"的刻板印象仍然没有动摇. 我对JS的理解可以概括成两点: 1) JS的终极准则就是全局变量——别管, 全局变量就完事了; 2) 时刻警惕无处不在的_未定义_. 可以说这两点导致了我的代码就是我的代码, 今天的代码就是今天的代码, 换一个人或者过几天, 代码就读不懂啦.

除了JS让我放下了结构良好的代码的执念, 眼花缭乱的前端UI框架也让我放下了响应性良好的页面的执念. 对于我这种玩票选手, 钻研页面组件的响应性实在过于奢侈, 以至于有时候过分依赖某一个UI框架提供的组件而又不了解其底层实现反而失去了对页面的掌控.

所以这次, 我准备在脚本上拥抱Vue 3, 在页面上回归Element-ui和CSS. Vue 3中增加了对TypeScript的原生支持. TypeScript作为一个JS的超集, 为JS提供了类型支持. 我的直观感觉是函数传参总算不至于一堆字符串和undefined乱飞了. 而新增加的组合式API让组件的结构看上去更清晰, 对比起来感觉以前好像一堆钩子. 不过组合式API似乎对简陋的单HTML文件不太友好, 所以就显得写一个方便日后删改的Demo很有必要. 而我这次选择Element-ui一方面是因为它有TypeScript版本Element-plus, 另一方面也是因为它够用而不过分复杂, 自己写几行CSS排排版也就能做出像样的页面了. 还有一点是因为我毕竟是饿了么重度用户, 我自己对于GUI的概念也已经渐渐变成了饿了么的模样.

基于Vue+Python的应用搭建——前端[1](pycharm vue)

为了让这个演示应用尽可能地简单, 同时又包含足够多的技术细节供日后参考, 我准备让页面包含响应式页面组件, 组件参数传递, HTTP通信, 图片展示, 引入外部定义的全局变量等几个基本的内容. 为此, 我在这篇文章里给出一个Dalle-mini的网页应用. 这个应用根据用户输入的_提示_(prompt)给出一幅由后端Dalle-mini模型生成的图像. 项目我已经发布到我的Github仓库. 接下来我将介绍几个的技术细节.

1. 概览1.1 总体结构

要使用组合式API意味着仅仅写一个包含所有功能的HTML是行不通的. 当然, Vue 3也提供了传统的选项式API. 选项式API的好处是可以快速写出一个单HTML文件的网页应用, 也方便在浏览器控制台操作vm实例. 但我个人觉得要用回选项式API, 不如直接一步到位切回Vue 2, 毕竟老版本用着习惯.

既然要用到组合式API, 那么最新版本的Node.js是少不了了(至少16+). 为了快速安装依赖, 可能还需要安装阿里镜像源的包管理工具cnpm. 我在这里用了官方的构建工具Vite和项目脚手架create-vue. 通过以下命令生成一个项目:

cnpm init vue@latest

要注意在✔ Add TypeScript?时要选择Yes才能使用TypeScript. 其他选项选No即可.

生成的项目文件结构如下:

Project| public| | ...| src| | assets| | | ...| | components| | | ...| | App.vue| | main.ts| index.html| tsconfig.json| ...

注意安装element-plus和@element-plus/icons-vue后, 还需要在tsconfig.json中修改相应配置.

1.2 项目编译时会发生什么

在项目中, index.html几乎会被原封不动地编译. 因此一些不希望由Vue做的事情, 以及希望能够方便被外部修改的内容何以写到这个文件里.

main.ts是Vue组件与HTML之间的接口. 这里主要用来创建Vue应用实例. 同时, 也由于这里位于引用的最顶端, 所以可以在这里

本文链接地址:https://www.jiuchutong.com/zhishi/296198.html 转载请保留说明!

上一篇:js获取当前日期,格式 YYYY-MM-DD HH:mm:ss(js获取当前日期的函数)

下一篇:今日的CSS小案例(css案例教程)

  • 华为gt3pro可以测血压吗(华为gt2pro和gt3哪个值得买)

    华为gt3pro可以测血压吗(华为gt2pro和gt3哪个值得买)

  • 小米手机圆圈浮动窗口怎么关闭(小米手机小圆圈)

    小米手机圆圈浮动窗口怎么关闭(小米手机小圆圈)

  • 蓝牙耳机怎么断开连接(蓝牙耳机怎么断断续续的声音)

    蓝牙耳机怎么断开连接(蓝牙耳机怎么断断续续的声音)

  • mhz等于多少hz(ghz等于多少hz)

    mhz等于多少hz(ghz等于多少hz)

  • 抖音怎么给直播点赞(抖音怎么给直播间发红包)

    抖音怎么给直播点赞(抖音怎么给直播间发红包)

  • 微信群踢人找不到人怎么回事(微信群踢人找不到群成员怎么办)

    微信群踢人找不到人怎么回事(微信群踢人找不到群成员怎么办)

  • oppo屏幕无法滑动(oppo手机屏幕无法滑动)

    oppo屏幕无法滑动(oppo手机屏幕无法滑动)

  • 云计算技术的服务类型分为(云计算技术的服务模式有哪些)

    云计算技术的服务类型分为(云计算技术的服务模式有哪些)

  • 抖音安卓和苹果功能有区别吗(抖音安卓和苹果是一个账号吗)

    抖音安卓和苹果功能有区别吗(抖音安卓和苹果是一个账号吗)

  • 耳机没有麦克风怎么办(电脑连接蓝牙耳机没有麦克风)

    耳机没有麦克风怎么办(电脑连接蓝牙耳机没有麦克风)

  • 事务日志的作用(事务日志的作用是什么)

    事务日志的作用(事务日志的作用是什么)

  • pin码忘了怎么办(小米sim卡pin码忘了怎么办)

    pin码忘了怎么办(小米sim卡pin码忘了怎么办)

  • pcnmoo是什么手机(pcemoo是什么手机)

    pcnmoo是什么手机(pcemoo是什么手机)

  • 电脑转屏怎么转换快捷(电脑转屏了怎么恢复)

    电脑转屏怎么转换快捷(电脑转屏了怎么恢复)

  • 诺基亚x6后盖怎么拆(诺基亚6后盖怎么打开)

    诺基亚x6后盖怎么拆(诺基亚6后盖怎么打开)

  • 苹果相机专业模式怎么打开(苹果相机专业模式怎么拍月亮)

    苹果相机专业模式怎么打开(苹果相机专业模式怎么拍月亮)

  • vivo z5什么时候上市(vivoz5什么时候上市多少钱)

    vivo z5什么时候上市(vivoz5什么时候上市多少钱)

  • 开通收钱码有什么坏处(开通收钱码有什么好处)

    开通收钱码有什么坏处(开通收钱码有什么好处)

  • 苹果手机id密码忘了id不是自己的怎么办(苹果手机id密码忘了怎么弄)

    苹果手机id密码忘了id不是自己的怎么办(苹果手机id密码忘了怎么弄)

  • iphone搜不到beatsx

    iphone搜不到beatsx

  • 无线充电什么意思(无线充电是什么意思啊)

    无线充电什么意思(无线充电是什么意思啊)

  • 苹果x系统占用内存太大怎么办(苹果X系统占用内存太大怎么办)

    苹果x系统占用内存太大怎么办(苹果X系统占用内存太大怎么办)

  • TypeScript系列, 通过vue3实例说说declare module语法怎么用[模块声明篇](typescript ??)

    TypeScript系列, 通过vue3实例说说declare module语法怎么用[模块声明篇](typescript ??)

  • js中let和var的区别(js let与var区别)

    js中let和var的区别(js let与var区别)

  • 什么是税收制度构成要素的中心环节
  • 转出未交增值税借方
  • 专项应付款和政府补助的区别是什么
  • 企业无票支出怎么入账
  • 房产继承是不是谁照顾谁的
  • 逾期认证未抵扣的文件
  • 付款然后付的手续费如何做账?
  • 异地作业人员的个税必须在收入地交吗?
  • 营改增以后小规模纳税人如何纳税
  • 个税纳税期数如何规定的 怎么选择
  • 个体户需要申报工资薪金吗
  • 分公司非独立核算是什么意思
  • 交易性金融资产的账务处理
  • 怎么查以前申报的财务报表
  • 抵扣发票勾选到哪个科目
  • 采购材料的运费怎么做分录
  • mac 应用
  • 影响资金等值的三个因素
  • 收到非税收入一般缴款书开发票吗
  • 工商年报缴费基数是什么意思
  • 如何去掉电脑桌面背景图
  • 在win7中,如何创建一个TXT文件
  • 铁路货物运输代理
  • php设计模式及使用场景
  • wordpress抓取网页
  • mac osx10.11
  • 软件工程毕设题目冷门
  • 货物运输业的增值税税率
  • source map
  • 大熊雨林中一只小熊
  • ICCV, ECCV, CVPR,IEEE的关系
  • 小微企业报税后多久缴税
  • 个人合伙企业如何计算个人所得税
  • 游戏运营服务是做什么的
  • php登录注册
  • vue3父子组件传递数组通信
  • 基于php判断客户是否存在
  • 政府补贴收入确认政策
  • opengl 帧率
  • 长期待摊费用是资产
  • 动产什么时候取得所有权
  • 工会经费按应发还是实发缴纳
  • 管理费用主要包括
  • 物资采购是
  • 库存商品过期报废会计分录
  • 个体户季报网上申报怎么填写
  • 退伍军人9000补助
  • 债券投资属于什么
  • 公司基本账户提额怎么算
  • 契税退税政策怎么操作
  • 进口货物应纳增值税的计算公式
  • 实收资本在核算上有哪些要求
  • 怎么对外投资
  • 货物赔偿款怎么开票
  • 残保金新公司第一年免费吗
  • 社区养老服务平台
  • 新成立公司年初余额
  • sqlserver存储过程怎么查看
  • executesql 存储过程
  • 怎么卸载xp系统
  • 0x80070718配额不足
  • linux的总结
  • 预装win7旗舰版
  • win7旗舰版完整版下载
  • win10 累积更新
  • linux桌面设置界面在哪
  • Nehe第六章纹理映射
  • jquery上传图片并预览
  • html怎么用javascript
  • jquery form表单
  • input的file
  • jquery实现回到顶部
  • career和calling的区别
  • unity ui批处理
  • JavaScript数据类的特点
  • js如何实现单例模式
  • javascript基本语句
  • javascript中的函数该如何理解
  • 东莞市国家税务局网上办税大厅
  • 100万元的人民币
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号