今天在网上瞎逛的时候发现了一个python的网页搭建模组pywebio还挺有意思的,不同于django/flask之流,pywebio没有那么多功能,就如官网描述这个模组更像是一个“富文本终端”。举个例子,如果我们想在网页上输出一个输入文本框,运行以下代码即可:

in = input('This is label', type=TEXT, placeholder='This is placeholder',
        help_text='This is help text', required=True)

如果想把用户输入的内容输出出来该怎么办呢?也很简单:

put_text(in)

就跟做梦一样!

为了更深入的体验一下这个模组,我用它+tornado在之前写的短网址方法类的基础上实现了一个网页UI。总的来说使用体验还是非常不错的,适合我这种不想写也写不来前端的人 。下面简单介绍一下这个项目的部署以及使用。

部署

适用于python3.x版本,GitHub repo | 演示站点

1. 根据自己的需求需求配置config.json

blacklist: 黑名单网站列表,程序不会对此列表中网站进行服务

baseURL: 短网址服务的基础URL

sqliteAddress: SQLite数据库地址

shift_possibility: 范围在 (0, 1) 之前, 数值越大缩减的效果越好,但是如果数据库太大了会导致执行速度变慢,一般来说0.9相对合适

min_length: 短网址后缀最短长度

max_length: 短网址后缀最长长度, -1 为无限制

support_url_pattern: 支持html链接的正则表达式

{
   "blacklist":[
      "https://sample2.com"
   ],
   "baseURL":"https://sample.com",
   "sqliteAddress":"./shortLink.db",
   "shift_possibility": 0.6,
   "min_length": 4,
   "max_length": -1,
   "support_url_pattern":"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
}

2. 配置service.ini,即服务配置文件:

[SERVICE]
title=贰岛短网址         # 网站标题
link=https://sample.com # 网站地址
proxy=1145              # 服务端口号

3. 最后执行 sh start_service.sh 就ok啦!1

ShortURL

这是短网址的功能类,可以独立于网页UI使用

import ShortURL

func = ShortURL.ShortURL()

# 添加链接
result = func.add("https://cirno.me")  # 1000 item/1.7s

# 检查服务器链接数量
print(func.len())

# 原链接/短链接 相互转换
result = func.get("https://cirno.me")
print(result)

# 服务状态
print(func.status())

# 用完后记得关闭服务
func.close()

  1. 直接执行service.py亦可