当前位置: 首页 > news >正文

做网站的人月平地起建筑人才网

做网站的人月,平地起建筑人才网,酒店行业网站建设方案,火爆产品的推广文案目录 前言1 使用方法1.1 安装 Pywebio1.2 输出内容1.3 输入内容 2 示例程序2.1 BMI 计算器2.2 Markdown 编辑器2.3 聊天室2.4 五子棋 前言 前两天正在逛 Github#xff0c;偶然看到一个很有意思的项目#xff1a;PyWebIo。 这是一个 Python 第三方库#xff0c;可以只用 P… 目录 前言1 使用方法1.1 安装 Pywebio1.2 输出内容1.3 输入内容 2 示例程序2.1 BMI 计算器2.2 Markdown 编辑器2.3 聊天室2.4 五子棋 前言 前两天正在逛 Github偶然看到一个很有意思的项目PyWebIo。 这是一个 Python 第三方库可以只用 Python 语言写出一个网页而且支持 FlaskDjangoTornado 等 web 框架。 甚至它可以支持数据可视化图表的绘制还提供了一行函数渲染 Markdown 文本。 那么话不多说正片开始—— 仓库地址https://github.com/pywebio/PyWebIO 1 使用方法 1.1 安装 Pywebio 打开 CMD在里面输入以下代码 pip install pywebio如果速度太慢建议使用国内镜像 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywebio1.2 输出内容 put_text() 输出文字put_table() 输出表格put_markdown() 输出 markdown 内容put_file() 输出文件下载链接put_image() 输出图片put_button() 输出按钮 请看示例程序 from pywebio.output import *def main():# 文本输出put_text(Hello world!)# 表格输出put_table([[商品, 价格],[苹果, 5.5],[香蕉, 7],])# Markdown输出put_markdown(~~删除线~~)# 文件输出put_file(hello_word.txt, bhello word!)if __name__ __main__:main()1.3 输入内容 input() 和 python 一样的函数欸 from pywebio.input import *def main():name input(请输入你的名字)if __name__ __main__:main()2 示例程序 这些都是官方给出的实例代码都不到 100 行 官方项目地址https://pywebio-demos.pywebio.online/ 2.1 BMI 计算器 from pywebio.input import input, FLOAT from pywebio.output import put_textdef bmi():height input(Your Height(cm), typeFLOAT)weight input(Your Weight(kg), typeFLOAT)BMI weight / (height / 100) ** 2top_status [(14.9, Severely underweight), (18.4, Underweight),(22.9, Normal), (27.5, Overweight),(40.0, Moderately obese), (float(inf), Severely obese)]for top, status in top_status:if BMI top:put_text(Your BMI: %.1f, category: %s % (BMI, status))breakif __name__ __main__:bmi()2.2 Markdown 编辑器 from pywebio import start_serverfrom pywebio.output import * from pywebio.pin import * from pywebio.session import set_env, downloaddef main():Markdown Previewerset_env(output_animationFalse)put_markdown(# Markdown Live PreviewThe online markdown editor with live preview. The source code of this application is [here](https://github.com/wang0618/PyWebIO/blob/dev/demos/markdown_previewer.py).## Write your Markdown)put_textarea(md_text, rows18, code{mode: markdown})put_buttons([Download content], lambda _: download(saved.md, pin.md_text.encode(utf8)), smallTrue)put_markdown(## Preview)while True:change_detail pin_wait_change(md_text)with use_scope(md, clearTrue):put_markdown(change_detail[value], sanitizeFalse)if __name__ __main__:start_server(main, port8080, debugTrue)2.3 聊天室 import asynciofrom pywebio import start_server from pywebio.input import * from pywebio.output import * from pywebio.session import defer_call, info as session_info, run_asyncMAX_MESSAGES_CNT 10 ** 4chat_msgs [] # The chat message history. The item is (name, message content) online_users set()def t(eng, chinese):return English or Chinese text according to the users browser languagereturn chinese if zh in session_info.user_language else engasync def refresh_msg(my_name):send new message to current sessionglobal chat_msgslast_idx len(chat_msgs)while True:await asyncio.sleep(0.5)for m in chat_msgs[last_idx:]:if m[0] ! my_name: # only refresh message that not sent by current userput_markdown(%s: %s % m, sanitizeTrue, scopemsg-box)# remove expired messageif len(chat_msgs) MAX_MESSAGES_CNT:chat_msgs chat_msgs[len(chat_msgs) // 2:]last_idx len(chat_msgs)async def main():PyWebIO chat roomYou can chat with everyone currently online.global chat_msgsput_markdown(t(## PyWebIO chat room\nWelcome to the chat room, you can chat with all the people currently online. You can open this page in multiple tabs of your browser to simulate a multi-user environment. This application uses less than 90 lines of code, the source code is [here](https://github.com/wang0618/PyWebIO/blob/dev/demos/chat_room.py), ## PyWebIO聊天室\n欢迎来到聊天室你可以和当前所有在线的人聊天。你可以在浏览器的多个标签页中打开本页面来测试聊天效果。本应用使用不到90行代码实现源代码[链接](https://github.com/wang0618/PyWebIO/blob/dev/demos/chat_room.py)))put_scrollable(put_scope(msg-box), height300, keep_bottomTrue)nickname await input(t(Your nickname, 请输入你的昵称), requiredTrue, validatelambda n: t(This name is already been used, 昵称已被使用) if n in online_users or n else None)online_users.add(nickname)chat_msgs.append((, %s joins the room. %s users currently online % (nickname, len(online_users))))put_markdown(: %s join the room. %s users currently online % (nickname, len(online_users)), sanitizeTrue, scopemsg-box)defer_calldef on_close():online_users.remove(nickname)chat_msgs.append((, %s leaves the room. %s users currently online % (nickname, len(online_users))))refresh_task run_async(refresh_msg(nickname))while True:data await input_group(t(Send message, 发送消息), [input(namemsg, help_textt(Message content supports inline Markdown syntax, 消息内容支持行内Markdown语法)),actions(namecmd, buttons[t(Send, 发送), t(Multiline Input, 多行输入), {label: t(Exit, 退出), type: cancel}])], validatelambda d: (msg, Message content cannot be empty) if d[cmd] t(Send, 发送) and not d[msg] else None)if data is None:breakif data[cmd] t(Multiline Input, 多行输入):data[msg] \n await textarea(Message content, help_textt(Message content supports Markdown syntax, 消息内容支持Markdown语法))put_markdown(%s: %s % (nickname, data[msg]), sanitizeTrue, scopemsg-box)chat_msgs.append((nickname, data[msg]))refresh_task.close()toast(You have left the chat room)if __name__ __main__:start_server(main, debugTrue)2.4 五子棋 import timefrom pywebio import session, start_server from pywebio.output import *goboard_size 15 # -1 - none, 0 - black, 1 - white goboard [[-1] * goboard_sizefor _ in range(goboard_size) ]def winner(): # return winner piece, return None if no winnerfor x in range(2, goboard_size - 2):for y in range(2, goboard_size - 2):# check if (x,y) is the win centerif goboard[x][y] ! -1 and any([all(goboard[x][y] goboard[m][n] for m, n in [(x - 2, y), (x - 1, y), (x 1, y), (x 2, y)]),all(goboard[x][y] goboard[m][n] for m, n in [(x, y - 2), (x, y - 1), (x, y 1), (x, y 2)]),all(goboard[x][y] goboard[m][n] for m, n in [(x - 2, y - 2), (x - 1, y - 1), (x 1, y 1), (x 2, y 2)]),all(goboard[x][y] goboard[m][n] for m, n in [(x - 2, y 2), (x - 1, y 1), (x 1, y - 1), (x 2, y - 2)]),]):return [⚫, ⚪][goboard[x][y]]session_id 0 # auto incremented id for each session current_turn 0 # 0 for black, 1 for white player_count [0, 0] # count of player for two rolesdef main():Online Shared Gomoku GameA web based Gomoku (AKA GoBang, Five in a Row) game made with PyWebIO under 100 lines of Python code.global session_id, current_turn, goboardif winner(): # The current game is over, reset gamegoboard [[-1] * goboard_size for _ in range(goboard_size)]current_turn 0my_turn session_id % 2my_chess [⚫, ⚪][my_turn]session_id 1player_count[my_turn] 1session.defer_calldef player_exit():player_count[my_turn] - 1session.set_env(output_animationFalse)put_html(style table th, table td { padding: 0px !important;} button {padding: .75rem!important; margin:0!important} /style) # Custom styles to make the board more beautifulput_markdown(f# Online Shared Gomoku GameAll online players are assigned to two groups (black and white) and share this game. You can open this page in multiple tabs of your browser to simulate multiple users. This application uses less than 100 lines of code, the source code is [here](https://github.com/wang0618/PyWebIO/blob/dev/demos/gomoku_game.py)Currently online player: {player_count[0]} for ⚫, {player_count[1]} for ⚪. Your role is {my_chess}.)def set_stone(pos):global current_turnif current_turn ! my_turn:toast(Its not your turn!!, colorerror)returnx, y posgoboard[x][y] my_turncurrent_turn (current_turn 1) % 2use_scope(goboard, clearTrue)def show_goboard():table [[put_buttons([dict(label , value(x, y), colorlight)], onclickset_stone) if cell -1 else [ ⚫, ⚪][cell]for y, cell in enumerate(row)]for x, row in enumerate(goboard)]put_table(table)show_goboard()while not winner():with use_scope(msg, clearTrue):current_turn_copy current_turnif current_turn_copy my_turn:put_text(Its your turn!)else:put_row([put_text(Your opponents turn, waiting... ), put_loading().style(width:1.5em; height:1.5em)], sizeauto 1fr)while current_turn current_turn_copy and not session.get_current_session().closed(): # wait for next movetime.sleep(0.2)show_goboard()with use_scope(msg, clearTrue):put_text(Game over. The winner is %s!\nRefresh page to start a new round. % winner())if __name__ __main__:start_server(main, debugTrue, port8080)稍微试了试这个第三方库感觉功能十分的强大。 不只是上面的项目它还有不同风格能绘制不同图表集成web框架。 有了这个库我们就可以轻松地将 Python 程序展示在网页上也就是实现使用 Python 开发前端 本文就到这里如果喜欢的话别望点赞收藏拜~
http://www.hkea.cn/news/14371872/

相关文章:

  • 南通做网站优化哪家好做代收的网站有哪些
  • 平度好的建设网站有产品怎么找销售渠道
  • 网站开发招标做食品企业网站的费用
  • 先做网站再付款 怎么回答陕西西安网站建设
  • 深圳市建设局官方网站能力建设和继续教育中心网站
  • 北京网站建设+知乎网站怎样做排名
  • 举例描述该如何布局网站关键词wordpress主题logo
  • 网站地址栏小图标石家庄网站制作报价
  • 哪个网站建设服务器是在国外的中国城乡与建设部网站
  • 我市精神文明建设的门户网站广州个人网站制作
  • 佛山企业网站seo云主机购买
  • 岳阳做网站推荐wordpress地图页面如何添加图片
  • 怎么创建网站快捷方式到桌面企业管理咨询论文
  • 怎么样做网站编程seo策略工具
  • 古镇建设网站怎么删除wordpress插件
  • 重庆seo网站收录优化dw asp access 网站开发优点
  • 中山建设网站官网软件产品设计方案
  • 海口手机端建站模板一个简单的html代码
  • 万州哪里有做网站的wordpress 添加编辑
  • 十大免费网站推广入口管理系统开发项目
  • 湖北网站制作公司的联系方式网站建设行业研究
  • 长沙定制网站wordpress影视解析插件
  • 如何制作有关西安的网站建设电子商务网站的方法有?
  • 网站系统繁忙哪里有免费网站可以看
  • 网站优化公司服务网站建设所需美工
  • 广州站在哪个区找人做网站价格
  • 建设银行广西分行网站电子商务毕业设计设计电商网站建设
  • 广州有专做网站logo图片素材大全
  • 济南 网站设计公司网站推广公司经理职责
  • 打车网站开发会做网站开发 但是不会二次开发