一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
python
import time
from flask import Flask,make_response,request
from flask import Flask, request
from flask_caching import Cache
import xml.etree.cElementTree as ET
import hashlib
import requests
import re
import os
import random
#请将您的微信 token 填入这里
my_wx_token = "\*\*\*\*\*\*\*\*\*\*\*" # 自定义字母和数字组合即可,后续需要填入公众号后台
app = Flask(__name__)
env_dist = os.environ
cache = Cache(app, config={'CACHE\_TYPE': 'simple', "CACHE\_DEFAULT\_TIMEOUT": 30})
# 推荐答案阈值,假设推荐列表第一个 推荐值超过该阈值
PRED_TH = 0.9
# 推荐答案列表长度
PRED_LEN = 5
# 没有答案的回答
DEFAULT_ANSWER = [
"我的知识库见底了^\_^, 您可以换个问题试试",
"恭喜您触发彩蛋答案, 请把问题描述的更详细点吧",
"您的问题竟然把我难住了...有意思...",
"哼,再这么问, 我就生气啦",
"我不服, 再来!",
]
ANSWER_TYPE_MAP = {
"0": "网上办事",
"2": "办事指南",
"3": "一件事"
}
@app.route('/test',methods=['GET','POST'])
def wechat():
signature = request.args.get("signature", "")
timestamp= request.args.get("timestamp", "")
nonce= request.args.get("nonce", "")
echostr= request.args.get("echostr", "")
token=my_wx_token
data =[token, timestamp, nonce]
data.sort()
temp = ''.join(data)
sha1 = hashlib.sha1(temp.encode('utf-8'))
hashcode=sha1.hexdigest()
if hashcode == signature:
if request.method == 'GET':
return echostr
else:
return "error-return\r\n"
xmlData = ET.fromstring(request.stream.read())
msg_type = xmlData.find('MsgType').text
if msg_type == 'text':
ToUserName = xmlData.find('ToUserName').text
FromUserName = xmlData.find('FromUserName').text
CreateTime = xmlData.find('CreateTime').text
return generate_response_xml(FromUserName, ToUserName, xmlData.find('Content').text)
return echostr
def text\_reply(FromUserName, ToUserName, output_content):
reply = '''
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>
'''
response = make_response(reply % (FromUserName, ToUserName, str(int(time.time())), output_content))
response.content_type = 'application/xml'
return response
def imgtext\_reply(FromUserName, ToUserName, title="测试图文标题", desc="描述", picurl="http://\*\*\*\*\*\*\*\*\*\*\*:8082/test.png", url="http://\*\*\*\*\*\*\*\*\*\*\*\*\*\*:8082/"):
reply = f'''
<xml>
<ToUserName><![CDATA[{FromUserName}]]></ToUserName>
<FromUserName><![CDATA[{ToUserName}]]></FromUserName>
<CreateTime>{str(int(time.time()))}</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[{title}]]></Title>
<Description><![CDATA[{desc}]]></Description>
<PicUrl><![CDATA[{picurl}]]></PicUrl>
<Url><![CDATA[{url}]]></Url>
</item>
</Articles>
</xml>
'''
response = make_response(reply)
response.content_type = 'application/xml'
return response
def generate\_response\_xml(FromUserName, ToUserName, input_content):
imgtext = False
if input_content.endswith(' 图文'):
imgtext = True
input_content = input_content[:-3]
output_list = generate_response(input_content)
# print('问题:', input\_content)
first_item = output_list[0]
if output_list and imgtext:
# 测试图文消息
answer = first_item['answer']
title = first_item['title']
url = f"<a href='http://\*\*\*\*\*\*\*\*\*\*\*\*:8082/intelligentCustomer/ics?q={title}' target='\_blank'>{title}</a>"
if answer.startswith('<a'):
obj = re.match(r"<a.\*href=[\'\"]{1}(.\*)[\'\"]{1}.\*target=.\*", answer)
answer = "点击查看详情"
if obj:
url = obj.group(1)
return imgtext_reply(FromUserName, ToUserName, title=title, desc=answer , url = url)
output_content = random.choice(DEFAULT_ANSWER)
if output_list:
output_content = ""
pred_title = "您是否想问:"
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**