python前端用什么写_Python 竟然也可以写网页前端了
作者:Ckend
来源:Python实用宝典Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 —Brython
好用吗?咱今天来试试用它写一个计算器:
不过,我们首先要知道它作为 Python 的客户端 Web 编程工具,和 JS 有什么区别呢?
1. 特点
1. 可轻易地在页面中内嵌 Python 终端进行测试
2. 运行速度接近于 CPyhon
3. 写法方便,社区强大,可进行敏捷开发
如果 Python 和 JS 你都写过,那大概率会觉得相同的功能,用 Python 写起来比 JS 更方便。
4.和 JS 一样,你不用安装任何东西就可以开始编写
下面就用Brython做一些简单的实验吧。
2. 实验
0. 安装
与通常的 Python 库一样,可以通过 pip install brython 进行安装。
然后在一个空目录下执行:python -m brython --install1. 在页面上显示Hello !:
将这份代码保存为index.html,双击在浏览器中打开,即可看到Hello !字样:
原理:
代码的 head 中,引入了一个 Brython 引擎附带的brython.min.js模块,用于使用 Python 控制页面。
而在 之间就是相应的 Python 代码。
可以看到,想在 document 中显示文本,只需要直接输入:document <= "你所需要显示的文本"
后续你将会看到用 Brython 使用标准化的 DOM 语法和页面交互的例子。
2. 用 HTML 标签来做文本格式化:
如果要加粗文本:from browser import document, htmldocument <= html.B("Hello !")
部分加粗、部分不加粗:from browser import document, htmldocument <= html.B("Hello, ") + "world !"i 标签:document <= html.UL(html.LI(i) for i in range(5))超链接:document <= html.A("Python实用宝典", href="https://pythondict.com")以上例子如下:
效果:
3. 写一个简单的计算器
先写好简单的图形架构,用th和tr标签即可:from browser import document, htmlcalc = html.TABLE()calc <= html.TR(html.TH(html.DIV("0", id="result"), colspan=3) +html.TH("C", id="clear"))lines = ["789/","456*","123-","0.=+"]calc <= (html.TR(html.TD(x) for x in line) for line in lines)document <= calc
然后加上一些 CSS 样式就可以把这个简单的图形架构变漂亮了:
最后只需要做运算符的事件触发器即可,从下面这行代码:calc <= (html.TR(html.TD(x) for x in line) for line in lines)可以看出,所有的按钮都被创建为 td 标签,因此我们要获得所有这些按钮是否被点击,仅需要:for button in document.select("td"):button.bind("click", action)意思是,按钮被点击后便执行 action 操作,action 操作定义如下:def action(event):"""Handles the "click" event on a button of the calculator."""# The element the user clicked on is the attribute "target" of the# event objectelement = event.target# The text printed on the button is the element's "text" attributevalue = element.textif value not in "=C":# update the result zoneif result.text in ["0", "error"]:result.text = valueelse:result.text = result.text + valueelif value == "C":# resetresult.text = "0"elif value == "=":# execute the formula in result zonetry:result.text = eval(result.text)except:result.text = "error"
如果不是 = 号或 C 号,则进行 字符串拼接。
如果是 C 号,则清空 result。
如果是 = 号,则需要计算出结果,直接对字符串用 eval() 函数即可完成目的。
这边是全部核心代码了,写起来真的极其方便。
你可以访问如下地址体验这个 Python 写的计算器:
https://pythondict.com/calculator.html
完整源码:
https://pan.baidu.com/s/1d4ndpN1Lpzb6fpgqKJ7acQ
提取码:v36f
---------End---------顺便给大家推荐下我的微信视频号「价值前瞻」,主要分享读书、成长和投资思考,可以了解不一样的我,欢迎扫码关注。
python前端用什么写_Python 竟然也可以写网页前端了相关推荐
- python解释器可以使用什么命令_python解释器用什么写的
python解释器是用什么语言实现的 用的是python解释器. 首先win+R 运行cmd,如果 python version不报错,则表明环境正确 python file.name运行即可我的故里 ...
- eclipse可以写前端吗_Python 竟然也可以写网页前端了!
Python作为胶水语言,真的是无所不能.这不,最近又出现一个基于 Python3,目标是替代 JavaScript 的前端开发工具 -Brython 好用吗?咱今天来试试用它写一个计算器: 不过,我 ...
- python文件是怎么写_python头文件怎么写
本文主要以python2为例.首先介绍一下Python头文件的编程风格,然后再给大家详细介绍import部分的基本用法.这两个部分就是Python中头文件的组成模块. 编程风格#!/usr/bin/e ...
- python代理ip怎么写_python代理ip怎么写
python写代理ip的方法:首先创建代理ip对象,并定制一个opener对象:然后安装opener对象,以后的urlopen就一直使用这个代理地址. python写代理ip的方法: 方法1: 先创建 ...
- python程序代码是什么_python代码用什么写
展开全部 对于新手而言,学了大概的语62616964757a686964616fe59b9ee7ad9431333433653336法,七七八八的历史.概念.知识,然而最直接的一个问题却无人解答:到底 ...
- python有头文件吗_python头文件怎么写
1.python编辑时可以不要头文件吗 win下py代码,头文件是#-*-encoding:utf-8-*-,是告诉python解释器, 应该以utf-8编码来解释py文件, 对于python 2.6 ...
- python利用requests进行爬虫_Python利用Requests库写爬虫(一)
基本Get请求: #-*- coding:utf-8 -*- import requests url = 'http://www.baidu.com' r = requests.get(url) pr ...
- python编程入门单例_python实现单例模式怎么写啊?
这个网上有很多的,你可以搜一搜,单例设计模式很多面试官都会考的,最好是记住一两个,我下面写一个例子给你看一下 使用__new__方法 在__new__方法中把类实例绑定到类变量_instance上,如 ...
- python一般用什么软件写_python用什么软件写代码
IDE没有统一的标准,自己习惯就是最好的.本文列出一些较常用的IDE,供大家参考. 一般而言,WingIDE.PyCharm.Spyder.Vim是比较常用的IDE. Spyder Spyder是Py ...
- python爬虫用什么软件写_python用什么软件写爬虫
如果你正在学习编程,那么"爬虫"绝对是你不可忽视的.那么,学习python爬虫之前需要哪些工具? 代码编辑运行环境:(推荐学习:Python视频教程) 个人推荐PyCharm社区版 ...
最新文章
- CVPR2020:端到端学习三维点云的局部多视图描述符
- js正则验证特殊字符
- 如何混合编译C语言和C++
- rust大油田分解机_油田泥浆泵油田环保罐车配套泥浆泵
- java的面向对象的四大特征
- WLAN产品形态之分层架构
- 解决win7下nodejs安装运行报错:Node.js is only supported on Windows 8.1, Windows Server 2012 R2... 之不支持高版本问题
- 数据分析 数据科学_数据科学中的数据分析
- 太真实了!程序员之间的鄙视链...
- SQL Server 2005数据库快照
- redis的zset的底层实现_Redis底层数据结构之 zset
- bzoj 2844 子集异或和名次
- 针对Micro Framework 3.0模拟器进行改造方法(浅谈)
- iOS开发之cocoapods报错MacOSSierra10.13-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framewor
- 14.http 304优化,了解客户端缓存
- 利用matlab实现卷积实验报告,matlab卷积实验报告(共8篇).doc
- 技术人员的价值是什么?技术的价值体现在赋能业务
- 华为mate40计算机,华为Mate40兼容欧米多手机电脑,秒变笔电轻办公
- evplayer android闪退,Evplayer优弊端汇总
- 关于wmsys.wm_concat() 多条记录合并,及可能出现的异常ORA-31061:XDB错误:special char to escaped char conversion failed