Tag Archives: flask
使用 Flask 设计 RESTful APIs
在 Flask 中使用 Celery
flask+sqlalchemy+postgresql 异步方案
flask-cache源码简要分析
- __init__.py:flask-cache主要功能,提供了对用户使用的各种函数;
- backends.py:对werkzeug.contrib.cache进行一些封装以及扩展,为__init__.py提供多种缓存类型;
- jinja2ext.py:jinjia2的扩展,用于缓存jinjia2模版;
jinja2ext.py
首先我们来简要剖析下flask-cache扩展jinjia2,用于缓存jinjia2模版片段。该文件提供一个类:CacheExtension,该类的父类是jinjia2.ext.Extension,在父类的基础上对parse(self, parser)进行了扩展(修改)。具体的代码需要对jinjia2有些了解,尤其是jinjia2.ext.Extension,这里不啰嗦。backends.py
这里包含了flask-cache对外提供的内置的缓存类型:NullCache、SimpleCache、MemcachedCache 、GAEMemcachedCache、RedisCache 、FileSystemCache、SASLMemcachedCache。- NullCache是对werkzeug.contrib.cache中的NullCache进行简单封装;
- SimpleCache是对werkzeug.contrib.cache中的SimpleCache进行简单封装;
- MemcachedCache是对werkzeug.contrib.cache中的MemcachedCache进行简单封装;
- GAEMemcachedCache是对werkzeug.contrib.cache中的GAEMemcachedCache进行简单封装;
- RedisCache是对werkzeug.contrib.cache中的RedisCache进行简单封装;
- FileSystemCache是对werkzeug.contrib.cache中的FileSystemCache进行简单封装;
- SASLMemcachedCache是flask-cache扩展了werkzeug.contrib.cache中的基础类MemcachedCache,实现了一个值跨多个不同的key存储;
__init__.py
文件里面只包含一个类:Cache。该类最重要的两个函数:cached和memoize,都能作为装饰器使用。cached主要用于缓存视图函数或者非视图函数,而memoize是Memoization <http://en.wikipedia.org/wiki/Memoization>的一种体现,主要用于缓存函数结果,这样多次调用的函数,只需要计算一次。FLASK开源项目--派生吧博客推介之五
FLASK开源项目--派生吧博客推介之四
FLASK开源项目--派生吧博客推介之三
这一部分主要对博客的源代码进行就解析,会分三次完成。首先看看代码主要有config.py,model.py,views.py,myapp.py这四个文件。
- config.py
# -*- coding: utf-8 -*- # configuration page num 每页的文章数 PER_PAGE = 10 # configuration mysql SQLALCHEMY_DATABASE_URI = "mysql://%s:%s@%s/%s"%('root','root','127.0.0.1','test')# 密钥SECRET_KEY = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
# 管理界面的用户名和密码 USERNAME = 'admin' PASSWORD = 'admin'# 图片上传路径UPLOAD_FOLDER = '/static/upload/'
#允许的图片类型 ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
配置文件里面主要设置了每页的文章数,数据库的相关信息:用户名、密码、地址、数据库名称,密钥,管理页面的用户名和密码,图片上传路径,允许的图片类型。
- myapp.py
这里面的代码比较简单,主要是导入相应的模块,app运行的端口以及debug模式:
from flask import Flask app = Flask(__name__) app.config.from_object('config') from views import * if __name__ == '__main__': app.run(host='0.0.0.0', debug=True)
flask开源项目--派生吧博客推介之二
上一部分介绍了博客整个结构,这一部分主要介绍templates与static两大文件夹里面的内容。
首先来看下templates 的内容:
这是整个博客的所有的页面:
- 404.html:错误页面,里面嵌入了公益寻人的js代码;
- about.html:个人说明页面
- category.html:分类目录的页面
- editpost.html:文章编辑的页面
- error.html:错误页面,里面会显示具体的错误信息,用于给调试使用;
- foot.html:所有页面的页脚部分
- head.html:所有页面的头的部分
- index.html:博客的首页
- layout.hml:页面的通用结构
- login.html:登录页面
- newpost.html:编写新文章的页面
- post.html:单页文章的页面
- search.html:搜索结果的页面
- sider.html:所有页面的侧边栏
- tag.html:标签页面
static文件夹内容:
css:包含页面所有的css
images:页面的所有使用的图片
js:页面所使用的js
kindeditor:富媒体文本编辑器的代码地址
upload:博客上传的图片的文件夹
这是这两大文件夹里面的内容,下一部分针对所有源码就行解析!
flask开源项目--派生吧博客推介之一
项目简介:
代码地址:https://github.com/sixu05202004/flaskblog
项目是用于简单的个人博客,前端界面主要是拷贝了wordpress的主题:NeoEase
项目使用的技术与插件:
- flask_sqlalchemy:是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展。 它致力于简化在 Flask 中 SQLAlchemy 的 使用,提供了有用的默认值和额外的助手来更简单地完成日常任务。
- flask_cache:缓存插件,可以用于提高网页的访问速度
- Bootstrap:Twitter的著名的CSS/HTML框架
- kindeditor:富文本编辑器
代码结构:
templates里面包含了很多网页模板:首页,文章页,标签页,分类页,搜索页等等,views.py包含很多的试图函数,config.py里面提供了一些基本的配置,model.py提供了基本的数据模型以及一些数据查询和处理的函数。
下一部分将会对源代码进行解析。