以前用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默认端口是 5000ajax() 方法用于执行 AJAX(异步 HTTP)请求。
所有的 jQuery AJAX 方法都使用 ajax() 方法。该方法通常用于其他方法不能完成的请求。
看不懂它在说什么?但知道form表单怎么用,就先理解为它的刷新是在后台,而form表单是提交数据跳转到新界面。
简而言之:它要什么你就去找什么
登陆页面:
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://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage&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知识,学会了再往下做。
