我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合公式 > 方法库 >

python的库方法这么多写程序的时候能记住吗

归档日期:07-02       文本归类:方法库      文章编辑:爱尚语录

  这就是平时的工作方式。vim写python,没安装其他插件,但有自己的配置文件。

  常见的项目所常用的函数很难超过50个。大量的业务函数一旦被写出来就是负责直接处理业务,而不会被其他部分调用,这些是不需要背的。

  再把自己写的共享函数库整理好,往往常用函数不到10个。应用模块里引用框架级别的函数也就是二三十个的级别。加上数据中间层,设计好规范后,能背下来必要的数据表就能联想到对应的接口。

  所以,一个不过2万行代码的python项目。实际需要背的函数也就是50个左右。

  补充个我当前公司所开发的一个小型项目。相当于是一个网站,以及给客户端软件提供ajax api的服务器。一共10个python文件。4357行。以下逐个文件分析,但不会暴露实际代码。

  1. rtb.py:75行,程序启动文件,其内的多种调用基本上就是一锤子的,即可以参考文档写完,但项目其他地方不会被使用,且作为启动文件,其本身也不会被引用。该文件的主要作用就是引用一大堆其他应用的模块,做URL分派。我因为在项目里同时使用了web.py和flask,所以多花了一点代码来做WSGI兼容两个框架的支持。

  2. setting.py:56行,设置文件,也可以理解为一锤子的,而且通用性更强,每次开个新的项目,大可以把以前的配置文件抄过来,只修改必要的部分就可以用了。仅有的两处小技巧是 socket.gethostname()获得机器名后区分配置文件的环境,用以避免上线时的混乱。以及获得设置文件的当前绝对路径,供其他路径相关的操作:

  3. shareutil.py:275行,web.py框架相关的自定义共享库,给各个应用模块提供相关支持。所以这里的函数是需要背下来的,在其他模块里比较常用的。比较常用的就是登录验证相关的:

  2. needlogin_401():装饰器函数,用于让视图先判断是否需要用户登录,如果未登录就用HTTP 401来强迫用户登录

  7. needlogin_cookie:检查视图是否登录,未登录则重定向到登录页

  11. catcherror:装饰器,用于捕获视图的异常,并显示为出错页面

  所以根据如上分析,一个项目中常用的也就是三种登录的一种,对应了函数的needlogin、setlogin、setlogout,三个函数。涉及常用数据库操作、ajax api的也有三个。总计6个函数需要背。

  4. model.py:421行数据模型,里面有十几行一锤子的引用,标准化程度高,可以在项目之间共用。给每个字段提供类型的需要背一下相关参数,这样工作效率会高。典型的字段类型如VARCHAR、INTEGER、PRIMARYKEY、TIMESTAMP,可以算作是四个函数需要背。同时这里定义了7个表格,背下来对应用的编写有较大帮助。

  5. flaskutil.py:169行。给flask框架用的共享库。给其他模块复用的概率大的多。

  所以如上可以看到所有这些函数与shareutil有很大重复。这里不再计入需要背的数量。

  6. app_api.py:1405行。ajax api的实际实现,使用了webpy框架。这里引用的部分不再重复,反正也是要被放弃的。写了26个API,他们都是直接被暴露出去,不会被其他模块调用,所以没必要背。

  8. app_home.py:361行。主页和登录逻辑。主要提取一下Flask框架里常用而值得背的几个函数:

  所以根据如上项目的分析可见,需要背下来的函数主要是在项目里需要使用多于1次的。包括框架的功能和自己写的共享库等。累计下来一共30个函数或对象。背30个函数可真是没难度的。

  web.py的作者去世多年,之后有些人尝试维护,但维护水平实在不敢恭维。至今在表单缺字段的处理,单元测试中set-cookie支持等存在缺陷。所以尽管我很喜欢这个框架的思路,但以后不会再用了。

本文链接:http://renfriends.com/fangfaku/656.html