Python中如何开发在微信中浏览的网页?
我需要开发一个企业内部用的 web 服务,因为用的人少,功能也简单,就一个数据实时显示页面,后端就用 flask 了。但是需要注意的是,我需要把这个页面的链接用微信消息发给用户,用户点击消息中的链接,等于是用微信内置浏览器来浏览。
我平时很少接触前端,我想请教一下,这种情况下开发前端应该注意什么,flask 渲染前端是用的 jinjia2 模板,pc 端我就做过,但是移动端应该怎么搞呢,是需要用到 html5、移动端适配、weui 等知识?搜索了一圈,还是有点迷糊,求有经验的同学指点一下大概是需要怎么做,我再去找对应的知识点学习。
Python中如何开发在微信中浏览的网页?
1 回复
要在微信中开发网页,核心就是做响应式Web开发,并处理好微信内置浏览器的特性。直接用Flask或Django这类框架起后端服务,前端注意兼容性就行。
给你个最直接的Flask例子,展示基本结构和微信适配要点:
from flask import Flask, render_template, request
import time
app = Flask(__name__)
# 微信浏览器检测和页面渲染
@app.route('/wechat_page')
def wechat_page():
user_agent = request.headers.get('User-Agent', '').lower()
is_wechat = 'micromessenger' in user_agent
# 示例:获取微信分享的推荐人(需配合JS-SDK)
referrer = request.args.get('from', 'direct')
return render_template('wechat_page.html',
is_wechat=is_wechat,
timestamp=int(time.time()),
referrer=referrer)
# 微信JS-SDK配置接口(需要微信公众号后台配置)
@app.route('/wx_config')
def wx_config():
import hashlib
import random
# 这里需要你的公众号配置
app_id = 'YOUR_APP_ID'
nonce_str = ''.join(random.sample('abcdefghijklmnopqrstuvwxyz', 16))
timestamp = str(int(time.time()))
# 实际开发中需要按微信规则生成签名
# 此处为示例结构
config = {
'appId': app_id,
'timestamp': timestamp,
'nonceStr': nonce_str,
'signature': 'CALCULATED_SIGNATURE' # 需实际计算
}
return config
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
对应的HTML模板(templates/wechat_page.html)关键部分:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>微信页面</title>
<style>
/* 微信浏览器专用样式调整 */
body {
-webkit-overflow-scrolling: touch; /* 平滑滚动 */
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
}
/* 防止长按弹出菜单 */
.no-menu {
-webkit-touch-callout: none;
user-select: none;
}
</style>
</head>
<body>
{% if is_wechat %}
<div class="wechat-only">
<h1>欢迎在微信中浏览</h1>
<p>页面已针对微信优化</p>
</div>
{% endif %}
<!-- 微信JS-SDK初始化 -->
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>
// 配置微信分享等功能
wx.config({
debug: false,
appId: '{{ config.appId }}',
timestamp: {{ config.timestamp }},
nonceStr: '{{ config.nonceStr }}',
signature: '{{ config.signature }}',
jsApiList: ['updateAppMessageShareData', 'chooseImage']
});
</script>
</body>
</html>
关键点:
- 响应式设计:用
viewport控制移动端显示,CSS用flexbox/grid布局 - 微信UA检测:通过
User-Agent判断是否在微信内打开 - JS-SDK集成:需要分享、拍照等高级功能时才用,得在公众号后台配置安全域名
- 样式适配:注意iOS/Android的差异,特别是滚动和点击效果
部署注意:
- 服务器需要HTTPS(微信要求)
- 公众号后台配置网页授权域名和JS接口安全域名
- 避免使用Flash和自动播放视频
一句话建议: 就当普通移动端网页开发,额外处理好微信的JS-SDK和分享功能就行。

