emacs预览图片时禁止smooth-scrolling


Table of Contents

需求

在使用 org-mode 写文档时,插入图片后默认不显示,想要直接在 org文件中预览图片,可以使用

org-toggle-inline-images

但是问题来了,开启预览模式后,移动光标跳过文件内容,找了一下

参考链接 1 那么问题来了,如何只在开启 org-toggle-inline-images 后关闭 smooth-scrooling, 关闭 org-toggle-inline-images 后开启 smooth-scrooling

解决

给出代码,使用 defadvice

(defadvice org-toggle-inline-images (after org-open-at-point activate)
  (if smooth-scrolling-mode (smooth-scrolling-mode -1)
        (smooth-scrolling-mode 1)))

Footnotes

1 https://github.com/syl20bnr/spacemacs/issues/3824

Python中的__main__函数


Table of Contents

_main_

转自 这里

很多新手刚开始学习python的时候经常会看到python 中 __name__ = '_main_' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中_name_ = '_main_' 的作用,到底干嘛的?

有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。 这句话,可能一开始听的还不是很懂。下面举例说明: 先写一个模块:

#module.py
def main():
    print("we are in %s" % __name__)

if __name__ == '__main__':
    main()

这个函数定义了一个main函数,我们执行一下该py文件发现结果是打印出

we are in __main__

说明我们的if语句中的内容被执行了,调用了 main(): 但是如果我们从另我一个模块导入该模块,并调用一次main()函数会是怎样的结果呢?

#anothermodle.py
from …

flask使用token进行验证


为什么需要用token验证

原因呢是因为写博客时已经在本地写好了,但是要发表到网站上还需要这么几步:

  • 打开浏览器
  • 打开我的网站
  • 进入登陆页
  • 登陆
  • 进入后台页
  • 进入文章发表页
  • 复制粘贴
  • 发表

所以使用token验证成为必然

如何使用token?

生成token

使用itsdangerous对token进行加密

class User(model):
    ......

    @property
    def token(self):
        config = current_app.config
        secret_key = config.setdefault('SECRET_KEY')
        salt = config.setdefault('SECURITY_PASSWORD_SALT')
        serializer = URLSafeTimedSerializer(secret_key)
        # column = self.(需要加密的字段)
        token = serializer.dumps(column, salt=salt)
        return token

请保管好SECRET_KEY 和 …

sqlalchemy序列化为json


为什么需要这个需求?

sqlalchemy 是个好东西,虽然其文档犹如/老太婆的裹脚布--又臭又长/,饱受诟病

使用 restful 时sqlalchemy返回的是一个 object 类,假设前后端分离,前端无法处理

如何实现?

直接给出代码

class Serializer(object):

    def __init__(self, instance, many=False, include=[], exclude=[], depth=2):
        self.instance = instance
        self.many = many
        self.include = include
        self.exclude = exclude
        self.depth = depth

    @property
    def data(self):
        if self.include and self.exclude …

利用网易云api获取歌曲信息


最近是增加了一个aplayer在网站上,但原本想要使用qiniu存储,最后觉得太麻烦了,直接利用网易云api获取歌曲

使用python标准库urllib

直接给出代码

from urllib import request
import json

id = '28819878'
url = "http://music.163.com/api/song/detail/?id=" + id + "&ids=%5B" + id + "%5D&csrf_token"
rep = request.urlopen(url).read().decode('UTF-8')
rep = json.loads(rep)['songs'][0]
name = rep['name']
artist = rep['artists'][0]['name']
mp3url = rep['mp3Url']
picurl = rep['album']['blurPicUrl']
print('name:', name)
print('artists …

常用正则表达式