pip 导出安装包:
pip freeze > requirement.txt
pip 导入安装包:
pip install -r requirement.txt
pip 导入安装包之加国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
今天在后台传模板数据到js的时候分号被转义成了',十分的恼火
var data = {{ data.msg | tojson }}
这个 |tojson 就可以很好的解决
今天给前端增加分页,flask paginate 最喽的哪一种,div的页码
还有一个隐藏的弹窗,当弹窗显示的时候就会出现权重问题,
页码在弹窗之上,十分的丑陋
涉及div权重问题
style="z-index:100"
数字越大权重越高越显眼
今天在搞一个页面的url,为了精益求精,所以将汉字转化成了urlcode,但是和原路由不太一样。然后找到了一个比较优秀的方法,他的编码是gb2312的编码,别的就没什么了
st = '胃疼怎么办'
st = st.encode('gb2312')
m = {'word':st,}
word = urllib.parse.urlencode(m)
今天再搞一个标题,可以看到标题为红色部分的是带有<em>
标签的,想要用xpath
匹配这个<em>
标签则是难上加难
然后再网上找到了一些可以帮我解决我的问题,
from html.parser import HTMLParser
hf_lists = html.xpath('//div/dl/dt/a')
for hf in hf_lists:
# 取出来的是个element对象,需要给他转换成字符串
name1 = etree.tostring(hf, method='html')
# 转成字符串后中文不能正常显示,需要再对其进行解析
content = HTMLParser().unescape(name1.decode())
这个时候打印一下content
就是
<a href="http://zhidao.baidu.com/question/209523751.html?fr=iks&word=%CE%B8%D5%CD%C6%F8%B0%A1&ie=gbk" data-log="fm:as,pos:ti,si:1,st:0,title:胃胀气啊,怎么办呢" target="_blank" class="ti xh-highlight"><em class="">胃胀气啊</em>,怎么办呢</a>
这个样子的
然后这一段摘抄自https://blog.csdn.net/ITcainiaoyizhan/article/details/85848272
由于我们只需要<a>
标签里面的内容,所以我么去掉外层标签
def getinnerhtml(data):
return data[data.find(">") + 1:data.rfind("</")]
title =getinnerhtml(content)
这样title
打印出来就是<em class="">胃胀气啊</em>,怎么办呢
这就满足了我的需求,最后本段代码摘抄自http://blog.csdn.net/ycjnx/article/details/81067641
又有人说不想要标签em
,…
test= comment.xpath(".//span[@class='ctt']")
result = test[0].xpath('string(.)').strip()
今天在换一个路由的参数,
原来长什么样子已经淡忘了,但是大概意思是找字符串里的第二个&
这下面的方法就非常的好用
num_name = name.index("&", name.index("&") + 1)
name = name[:num_name].split('&f=')
今天忽然得到了一个xml 想去处理它 ,但是有得不到一个完美的方法,就想着给他转换成json
于是就有了下面的内容
import xmltodict
xml_json = json.dumps(xmltodict.parse(data), indent=4)
for page_num in json.loads(xml_json)['response']:
这东西感觉就是给自己看的 哈哈哈,但是自己又没时间去看
今天遇到了一个算数问题,除法有余,直接+1 没有四舍五入这么一说
然后就发现了这个优秀的函数
import math
math.ceil()
搞了一个列表,不能做去重,想要知道列表里的每一个值都出现了几次的时候 无意之间发现了这个优秀的方法
a = ['a', 'b', 'r', 'a', 'd', 'r']
b = {}
for i in a:
b.setdefault(i, 0)
b[i] += 1
print(b) #{'a': 2, 'b': 1, 'r': 2, 'd': 1}
print(b['a']) #2
是dict
的子集 有秀的很
在大佬家发现了一个叫做尾递归的东西, 悟是悟了 , 但是还是怕忘了, 记下来,
传统递归
def recsum(x):
if x == 1:
return x
else:
return x + recsum(x - 1)
这样写的话, python
的内存会这样存储每一次的数据
recsum(5)
5 + recsum(4)
5 + (4 + recsum(3))
5 + (4 + (3 + recsum(2)))
5 + (4 + (3 + (2 + recsum(1))))
5 + (4 + (3 + (2 + 1)))
5 + (4 + (3 + 3))
5 + (4 + 6)
5 + 10
15
python 中可以这样写(尾递归):
def tailrecsum(x, running_total=0):
if x == 0:
return running_total
else:
return tailrecsum(x - 1, running_total + x)
这样的话存储则是
tailrecsum(5, 0)
tailrecsum(4, 5)
tailrecsum(3, 9)
tailrecsum(2, 12)
tailrecsum(1, 14)
tailrecsum(0, 15)
15
这句话也是摘抄知乎,但是我复制的时候没有出链接, 就在上面的连接同类答案
尾递归,比线性递归多一个参数,这个参数是上一次调用函数得到的结果;
所以,关键点在于,尾递归每次调用都在收集结果,避免了线性递归不收集结果只能依次展开消耗内存的坏处。
vue的生命周期