第二篇博客——基于Flask的web微信

什么是Flask

以前用java的jsp写过网页,对Django有一些认知,但对Flask是闻所未闻。

Flask是一个使用  Python 编写的轻量级 Web 应用框架。其  WSGI 工具箱采用 Werkzeug , 模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask版的hello world(hello.py):
1
2
3
4
5
6
7
8
from  flask  import  Flask
app  =  Flask(__name__)
@app .route( "/" )
def  hello():    
     return  "Hello World!"
 
if  __name__  = =  "__main__" :
     app.run()
安装flask即可运行了:
1
2
3
4
5
6
$ pip install Flask
 
$ python
hello.py *  Running on http: / / localhost: 5000 /
 
* flask默认端口是 5000


Flask与Django的区别:

1、Django是一款重量级的Python开发web框架,功能齐全,不同的人用Django来开发,开发出来的东西基本架构都是一样的,但是Flask是一个轻量级的web框架,相对来说更加灵活,每个人开发出来的东西架构可能完全不一样,
所以对于团队级别的大型项目来说,比较适合选择Django,因为整个团队比较容易达成一致的架构,不会陷入无休止的会议讨论,里面很多东西不需要自己设计,拿来即用,快速开发。
而对于个人开发的小项目来说,也可以用Django,也可以用Flask,用Flask的话,可以设计自己的项目架构,不必拘泥于Django的固定模式。但是对于经验少的开发者来说,这里就比较困难了
2、Flask对于加深Python学习有很大帮助,因为Flask不像Django很多东西都是现成的,需要自己去写
3、Django对新手来说比Flask容易上手,正是因为灵活性的原因


ajax请求:

了解了Flask后,要在网页中用到Jquery的ajax请求,又一次受到打击,再去学下Jquery。

ajax() 方法用于执行 AJAX(异步 HTTP)请求。

所有的 jQuery AJAX 方法都使用 ajax() 方法。该方法通常用于其他方法不能完成的请求。


看不懂它在说什么?但知道form表单怎么用,就先理解为它的刷新是在后台,而form表单是提交数据跳转到新界面。


web微信:

简而言之:它要什么你就去找什么

登陆页面:

def login():
    if request.method == 'GET':
        ctime = str(int(time.time() * 1000))
        qcode_url = "https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_={0}".format(ctime)

        ret = requests.get(qcode_url)
        qcode = re.findall('uuid = "(.*)";',ret.text)[0]
        session['qcode'] = qcode
        return render_template('login.html',qcode=qcode)
    else:
        pass


扫码登陆:

def check_login():
    """
    发送GET请求检测是否已经扫码、登录
    https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=QbeUOBatKw==&tip=0&r=-1036255891&_=1525749595604
    :return:
    """
    response = {'code':408}
    qcode = session.get('qcode')
    ctime = str(int(time.time() * 1000))
    check_url = "https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid={0}&tip=0&r=-1036255891&_={1}".format(qcode,ctime)
    ret = requests.get(check_url)
    if "code=201" in ret.text:
        # 扫码成功
        src = re.findall("userAvatar = '(.*)';",ret.text)[0]
        response['code'] = 201
        response['src'] = src
    return jsonify(response)


轮询机制:

概括来说是服务端定时主动的去与要监控状态的客户端(或者叫其他系统)通信,询问当前的某种状态,客户端返回状态信息,客户端没有返回或返回错误、失效信息、则认为客户端已经宕机,然后服务端自己内部把这个客户端的状态保存下来(宕机或者其他),如果客户端正常,那么返回正常状态,如果客户端宕机或者返回的是定义的失效状态那么当前的客户端状态是能够及时的监控到的,如果客户端宕机之后重启了那么当服务端定时来轮询的时候,还是可以正常的获取返回信息,把其状态重新更新。

写爬虫需要许多web知识,学会了再往下做。


### 实现基于本地部署的 DeepSeek-R1 微信智能聊天机器人 构建一个基于本地部署的 DeepSeek-R1 的微信智能聊天机器人涉及多个方面的工作,包括但不限于环境搭建、API 调用以及消息处理逻辑的设计。 #### 环境准备 为了确保顺利运行,需满足一定的硬件条件并安装必要的软件包。对于 DeepSeek-R1 这样大型的语言模型来说,建议配置较高性能的计算机设备来支持高效的推理过程[^2]。具体而言: - **操作系统**: 支持 Windows, macOS 和 Linux; - **内存**: 至少 32GB RAM 或更多取决于所选模型大小; - **GPU 加速**(推荐): NVIDIA GPU (带有 CUDA 计算能力),可以显著提升响应速度; #### 安装依赖库 在开始之前,还需要设置 Python 开发环境,并通过 pip 工具安装所需的第三方库文件。这通常涉及到 Flask/Django Web 框架用于创建 HTTP 接口接收来自 WeChat 平台的消息请求,还有可能是 PyTorch/TensorFlow 库用来加载预训练好的 DeepSeek-R1 模型实例。 ```bash pip install flask wechatpy torch transformers ``` #### 创建 RESTful API 服务器 接下来就是编写核心业务代码部分——即定义好路由映射关系以便于解析接收到的数据包格式,并调用已有的 NLP 函数完成自然语言理解任务。下面给出了一段简单的示例程序框架供参考: ```python from flask import Flask, request, jsonify import json from deepseek_r1_model import load_model, generate_response # 假设这是自定义模块 app = Flask(__name__) model_path = './path/to/deepseek-r1-model' tokenizer, model = load_model(model_path) @app.route('/wechat', methods=['POST']) def handle_wechat_message(): data = request.get_json() user_input = data['Content'] response_text = generate_response(user_input, tokenizer, model) reply_data = { "ToUserName": data["FromUserName"], "FromUserName": data["ToUserName"], "CreateTime": int(time.time()), "MsgType": "text", "Content": response_text, } return jsonify(reply_data) if __name__ == '__main__': app.run(port=8080) ``` 这段脚本展示了如何利用 Flask 来监听 POST 请求中的 XML 数据流,从中提取出用户的输入文本后传递给 `generate_response()` 方法进行语义分析与回复生成操作,最后再按照微信公众平台规定的 JSON 结构封装返回值发送回去显示给对方查看。 请注意上述例子仅作为概念验证用途,在实际开发过程中可能还需考虑安全性加固措施(如 HTTPS 协议加密传输)、错误异常捕获机制等方面的内容以提高系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值