Python Fast CRUD

https://github.com/aleimu/python-crud

目的

本项目采用了一系列Python中比较流行的组件,可以以本项目为基础快速搭建Restful Web API, 这里主要是放了一些常用的CRUD操作示例和自己积累的通用函数.

说明

本项目使用了下面的常用组件:

  1. Flask: 轻量级Web框架,可以说是Python中最易用的了
  2. Flask-SQLAlchemy: ORM工具。本项目需要配合Mysql使用,sqlalchemy的flask包装,更易使用
  3. Redis: Python Redis客户端
  4. apscheduler : python常用的定时任务管理库
  5. Flask-Excel : 报表导出
  6. 本项目是使用token验证,

本项目已经预先实现了一些常用的代码方便参考和复用:

  1. 创建了用户模型
  2. 实现了/v1/user/register用户注册接口
  3. 实现了/v1/user/login用户登录接口
  4. 实现了/v1/user/logout用户登出接口(需要登录后获取token)
  5. 图片分组的CRUD /v1/advert/group,/v1/advert/image
  6. 图片的展示策略的CRUD /v1/advert/style
  7. 图片以及连接的访问触发的访问量/点击量/统计等CRUD /v1/advert/list,/v1/advert/statistic,

本项目已经预先创建了一系列文件夹划分出下列模块:

  1. app 放app,db,log的实例
  2. model 文件夹负责存储数据库模型和数据库操作相关的代码
  3. route 放的是路由,以及进来的请求的预处理
  4. service 负责处理比较复杂的业务,把业务代码模型化可以有效提高业务代码的质量(比如用户注册,充值,下单,查询列表等等)
  5. cache 负责redis以及本地缓存相关的代码
  6. tools 放一些通用的小工具,小函数,方便server中各处调用
  7. help 下放test(测试文件此处未补全),db_script(放历次版本的对mysql的库表结构的变更脚本),以及历次版本的说明以及一些帮助文件
  8. logs 放运行产生的日志文件

本地运行

python runserver.py

项目运行后启动在3000端口(可以修改,参考Flask文档),可以配置是否启用定时任务(访问量/点击量的定时统计)

生产环境推荐使用nginx代理 uwsgi_config.ini

uwsgi --ini uwsgi_config.ini --daemonize /var/log/flask_crud.log

server {
listen 3001 default_server;
server_name localhost;
location /static/ {
root /data/;
expires 30d;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/simpleflask.sock; # 必须和uwsgi_config.ini 中的socket配置一致
# 并且需要权限
}
}

参考

https://github.com/openspug/spug 对crud也有较好的封装,值得参考

python-crud的更多相关文章

  1. 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

    第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...

  2. python对MySQL的CRUD

    我是闲的没事干,2014过的太浮夸了,博客也没写几篇,哎~~~ 用这篇来记录即将逝去的2014 python对各种数据库的各种操作满大街都是,不过,我还是喜欢我这种风格的,涉及到其它操作,不过重点还是 ...

  3. 四十一 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

    elasticsearch(搜索引擎)基本的索引和文档CRUD操作 也就是基本的索引和文档.增.删.改.查.操作 注意:以下操作都是在kibana里操作的 elasticsearch(搜索引擎)都是基 ...

  4. python实现elasticsearch操作-CRUD API

    python操作elasticsearch常用API 目录 目录 python操作elasticsearch常用API1.基础2.常见增删改操作创建更新删除3.查询操作查询拓展类实现es的CRUD操作 ...

  5. 基于Python+Sqlite3实现最简单的CRUD

    一.基本描述 使用Python,熟悉sqlite3的基本操作(查插删改),以及基本数据类型.事务(ACID).     准备工作:在sqlite3的官网上下载预编译的sqlite文件(windows) ...

  6. 基于mongodb的python之增删改查(CRUD)

    1,下载mongodb的python驱动,http://pypi.python.org/pypi/pymongo/,根据操作系统和python平台版本选择相应的egg或exe安装. 2,新建一个py脚 ...

  7. python下的orm基本操作(1)--Mysql下的CRUD简单操作(含源码DEMO)

    最近逐渐打算将工作的环境转移到ubuntu下,突然发现对于我来说,这ubuntu对于我这种上上网,收收邮件,写写博客,写写程序的时实在是太合适了,除了刚接触的时候会不怎么完全适应命令行及各种权限管理, ...

  8. Python对elasticsearch的CRUD

    一.官网提供的Elasticsearch的Python接口包 1.github地址:https://github.com/elastic/elasticsearch-dsl-py 2.安装:pip i ...

  9. python框架之Django(2)-简单的CRUD

    写一个简单的项目小例子来了解Django中的O/RM操作 前戏 创建app #在Django项目根目录下执行 python3 manage.py startapp [app name] 配置数据库连接 ...

  10. Python 2.7.9 Demo - 019.01.CRUD oracle by cx_Oracle

    select #coding=utf-8 #!/usr/bin/python import cx_Oracle; conn = None; cursor = None; try: conn = cx_ ...

随机推荐

  1. JVM底层实现与总结

    一.类加载器 1.BootstrapClassLoader(启动类加载器) 它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME% ...

  2. React性能优化之PureComponent 和 memo使用分析

    前言 关于react性能优化,在react 16这个版本,官方推出fiber,在框架层面优化了react性能上面的问题.由于这个太过于庞大,我们今天围绕子自组件更新策略,从两个及其微小的方面来谈rea ...

  3. LVS的工作原理认识

    一.LVS 简介及工作模式 1. LVS:Linux Virtaul Server,该软件的功能是实现LB(load balance) 2. 三种工作模式的使用范围 1)NAT模式(NAT) LVS ...

  4. never下的easysql

    什么是EasySql 在我们早期写的代码中,想实现组装灵活的sql语句与参数,我们可以去翻阅早期自己写的代码 var @sb = new StringBuilder(); sb.Append(&quo ...

  5. 【转+存】JVM指令集

    jvm指令集: 转载地址:https://www.cnblogs.com/yaoyinglong/p/4300447.html 一.未归类系列A 此系列暂未归类. 指令码    助记符         ...

  6. jQuery调整表列(左右拉动调整列宽)插件__colResizable,动态列如何使用

    官网地址:http://www.bacubacu.com/colresizable/ 这里值得注意的是,如果是动态加入的列,则需要先清理调用插件生成的class,id和div之后再重新调用才会有作用. ...

  7. tar命令中的 -C 作用

    我用这个命令:tar zcvf chao.tar.gz /chao/*  打包文件的时候,在压缩包里把  /chao/这个路径也打包进去了. [root@yunwei-test chao]# ls / ...

  8. K Balanced Teams CodeForces - 1133E (Dp)

    题意: 给出 n 个数,选取其中若干个数分别组成至多 k 组,要求每组内最大值与最小值的差值不超过5,求最后被选上的总人数. 题解: 将a[1∼n] 从小到大排序, f[i][j] 表示到第 i 个数 ...

  9. C# 连接数据库等

    SqlConnection连接池:可以通过连接字符串配置连接池.对象池技术:HttpApplication :Asp.Net生产者 消费者. 线程.应用程序跟数据连接非常耗时,而且连接使用非常频繁,使 ...

  10. Qt之股票组件-自选股--列表可以拖拽、右键常用菜单

    目录 一.开头嘴一嘴 二.效果展示 三.自选股列表 1.列表初始化 2.添加Item 3.右键菜单 4.拖拽Item 5.刷新数据 四.相关文章 原文链接:Qt之股票组件-自选股--列表可以拖拽.右键 ...