Other articles


  1. 基于whoosh实现的flask全文搜索插件

    flask 貌似很少全文搜索的插件,有一个 https://github.com/gyllstromk/Flask-WhooshAlchemy , 但试了几次都用不了,所以参考 Flask-WhooshAlchemy 自己写了一个

    Quickstart

    插件基于 whoosh,纯 python 编写,使用上很简单

    from flask_msearch import Search
        [...]
        search = Search()
        search.init_app(app)
    
        # models.py
        class Post(db.Model):
            __tablename__ = 'post'
            __searchable__ = ['title', 'content']
    
        # views.py …

    read more

    There are comments.

  2. himawari8图片下载改进版

    第一版下载图片后设为壁纸,四周都是黑黑的不好看, 所以结合本地壁纸将两张图片进行合成

    只要计算一下要缩减的大小与要放置的位置

    我的方法是:打开gimp,合成两张图片,记下缩减的大小(214,214)与位置(160,160)

    每次只要运行一下

    python himawari8.py
    

    源码

    from PIL import Image, ImageOps, ImageDraw
    from io import BytesIO
    from urllib.request import Request, urlopen
    from datetime import datetime, timedelta
    import json
    
    SCALE = 2
    WIDTH = 1368
    HEIGHT = 768
    
    
    def …

    read more

    There are comments.

  3. 下载Himawari8拍摄的实时地球图片

    直接给出源码

    设置壁纸

    feh --bg-scale /tmp/earth.png
    

    设置桌面大小,及图片放大倍数

    SCALE = 4
    WIDTH = 1368
    HEIGHT = 768
    

    from PIL import Image
    from io import BytesIO
    from urllib.request import Request, urlopen
    from datetime import datetime
    import json
    
    SCALE = 4
    WIDTH = 1368
    HEIGHT = 768
    
    
    def get_info():
        url = "http://himawari8-dl.nict.go.jp …
    read more

    There are comments.

  4. sqlalchemy使用上的小tips

    sqlalchemy object序列化为json

    灵感来源于 *Django REST framework*

    posts = Post.query.all()
       serializer = Seralizer(posts,many=True)
       data = serializer.data
    

    多个实例

    单个实例

    post = Post.query.first()
       serializer = Seralizer(post …
    read more

    There are comments.

  5. 使用flask实现一个简单的图片上传存储服务

    GitHub地址: https://github.com/honmaple/maple-file

    maple-file

    使用flask实现的一个简单的图片上传服务

    设计初衷

    对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛 自定义域名竟然需要域名备案(Excuse me …

    read more

    There are comments.

  6. 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文件发现结果是打印出 …

    read more

    There are comments.

  7. 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 …

    read more

    There are comments.

  8. 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 …

    read more

    There are comments.