如何在Python CGI中实现基于UniPROT ID的通用动态URL超链接?
Python CGI 实现通用UniPROT ID超链接生成
核心思路
把UniPROT的URL做成固定模板,仅将可变的UniPROT ID部分用占位符替代,每次只需替换占位符即可生成对应ID的有效超链接,保证通用性。
实现步骤与代码示例
#!/usr/bin/env python3 import cgi import cgitb cgitb.enable() # 调试用,上线后可注释 # 1. 定义UniPROT通用URL模板,占位符{uniprot_id}用于替换输入的ID UNIPROT_URL_TEMPLATE = "https://www.uniprot.org/uniprot/{uniprot_id}" # 2. 获取用户提交的UniPROT ID(兼容GET/POST请求) form = cgi.FieldStorage() uniprot_id = form.getvalue("uniprot_id", "") # 无输入时返回空字符串 # 3. 生成对应ID的具体URL uniprot_url = UNIPROT_URL_TEMPLATE.format(uniprot_id=uniprot_id) if uniprot_id else "" # 输出HTML页面 print("Content-Type: text/html; charset=utf-8") print() print("<html>") print("<head><title>UniPROT 链接生成工具</title></head>") print("<body>") print("<h2>UniPROT 链接生成</h2>") print('<form method="post">') print(f'输入UniPROT ID: <input type="text" name="uniprot_id" value="{uniprot_id}">') print('<input type="submit" value="生成链接">') print("</form>") if uniprot_url: print(f"<p>生成的超链接: <a href='{uniprot_url}' target='_blank'>{uniprot_id}</a></p>") print("</body>") print("</html>")
关键说明
- 模板复用:
UNIPROT_URL_TEMPLATE是固定结构,无论输入什么UniPROT ID,仅替换占位符就能生成合法的UniPROT页面链接,确保通用性。 - 输入处理:通过
cgi.FieldStorage()获取用户输入,同时设置默认空值避免无输入时出错。 - HTML输出:使用
str.format()或f-string将生成的URL插入到<a>标签的href属性中,每次运行都会根据当前输入的ID动态生成有效超链接。
内容的提问来源于stack exchange,提问作者Aravind Suresh Babu
相关产品推荐
相关产品推荐

