2018年10月

前段时间,开发一个新功能, 纠结了很久在于下拉框插件的选择,最后实现核心功能的时候发现,由于核心功能的一些展现问题,根本用不到下拉框。

先开发核心功能, 一些核心功能的变动可能会引起周边功能的裁剪变动,如果核心功能实现不了, 或者实现起来没什么意义,周边功能也不需要实现,

软件功能开发复杂,有些时候不走到那一步,真很难看到实际情况的需要,

所以说,尽快发现那种和预想不一样的, 以及尽快想出办法变动。
软件开发, 有点像在茂盛的丛林中行走, 你只知道目的地的大概方位, 知道总体是往哪个方向走, 但是是没有现成的路, 你只能顺着方向前进, 有大的障碍你可以绕过, 所以你的做法因该是花少的代价尽快走通这么一条路, 确认这条路时可以通向目的地的,然后在扩建整修这条路, 而不是, 还没走通之前(核心功能实现之前),花大力起修缮周边。

测试驱动开发, 等等都是尽快的让你发现有可能阻碍核心功能实现的障碍,得以及时变动。

开发人员应该了解需求, 边开发边设计, 有点边走边瞧,也是为了有障碍的时候能及时灵活变动。

web项目中,操作数据库通常会引入ORM,也经常遇到把数据库中查到数据转化成json格式的返回给前端,Django 中自带的ORM,自带函数可以把ORM的实例转化成python的dict 就可以转化成json了。

那如果是flask web 项目, 采用的flask-sqlalchemy ORM如何方便的把返回的实例转化成dict呢?

我的一点小经验:

# 假设model类是 ExamineStat
stat_data = ExamineStat.query.all()
keys = ExamineStat.__table__.columns.keys()
data = [stat_data.getattr(stat_data, key) for key in keys]

stat_data 是一个model实例,而data是一个list

import json 
json.dumps(data)  # 轻松转成json

这里主要利用了model的__table__.columns.keys()可以获取对应数据库中数据表的所有字段的key