Flask遵循的是Pocoo的编程规范,Pocoo遵守PEP8的规范。
 
1.总体布局
     缩进:
          4个空格。不使用制表符,没有例外。(使用制表符也不会出错,但是千万不能混用)
     
     最大行长:
          软限制为 79 个字符,不超过 84 个字符。
          尝试合理放置 break 、 continue 和 return声明来避免代码过度嵌套。
 
     续行:
          可以使用反斜杠来续行,续行应对齐最后一个点号或等于号,或者缩进四个空格。
          如果你在括号内的换行,那么续行应对齐括号。
          对于有许多元素的元组或列表,在起始括号后立即换行。
 
     空行:
          顶层函数和类由两个空行分隔,其它一个空行。不要使用过多空行来分隔代码逻辑段。
 
2.表达式和语句
     常规空格规则:
          不是单词的一元运算符不使用空格(例如: - 、 ~ 等等),在圆括号也是这样。
          用空格包围二元运算符。
     
     禁止Yoda语句:
          永远不要用变量来比较常量,而是用常量来比较变量。(跟C语言推荐的方式相反)
 
     比较:
          针对任意类型使用 == 和 !=。
          针对单一类型使用 is 和 is not (例如: foo is not None )
          永远不要与 True 或 False 作比较(例如永远不要写 foo == False , 而应当写not foo)
 
     排除检验:
          使用 foo not in bar 而不是 not foo in bar
 
     实例检验:
          使用 isinstance(a, C) 而不是 type(A) is C ,但是通常应当避免检验实例,而应当检验特性。
 
3.命名约定
     类名:CamelCase ,缩写词大写( HTTPWriter 而不是 HttpWriter )(驼峰法)
     变量名:lowercase_with_underscores(linux建议的方式)
     方法和函数名:lowercase_with_underscores
     常量:UPPERCASE_WITH_UNDERSCORES
     预编译正则表达式:name_re
 
     保护的成员以单个下划线作为前缀,混合类则使用双下划线。
     如果使用关键字作为类的名称,那么在名称末尾添加下划线。(建议不用关键字做类名)
     与内置构件冲突是允许 的,请 一定不要用在变量名后添加下划线的方式解决冲突。
     如果函数需要访问 一个隐蔽的内置构件,请重新绑定内置构件到一个不同的名字。
 
     函数和方法参数:
          类方法:cls作为第一个参数
          实例方法:self作为第一个参数
          用于属性的lamda表达式应该把第一个参数替换为x ,
          像 display_name =property(lambda x: x.real_name or x.username) 中一样
 
4.文档字符串
     文档字符串约定:
          所有的文档字符串为 Sphinx 可理解的 reStructuredText 格式。
          它们的形态 因行数不同而不同。
          如果只有一行,三引号闭合在同一行,否则开头的三引号 与文本在同一行,结尾的三引号独立一行。
          (最后使用Sphinx生成代码的参考文档)
  def foo():
  """This is a simple docstring"""
 
def bar():
  """This is a longer docstring with so much information in there that it spans three lines. In this case the closing triple quote is on its own line. """
          模块头:
               模块头包含一个 utf-8 编码声明(即使没有使用非 ASCII 字符,也始终推 荐这么做)和一个标准的文档字符串。
# -*- coding: utf-8 -*-
""" package.module ~~~~~~~~~~~~~~
 
  A brief description goes here.
 
  :copyright: (c) YEAR by AUTHOR. :license: LICENSE_NAME, see LICENSE_FILE for more details."""
       谨记使用合适的版权和许可证文件以利于通过 Flask 扩展审核。
 
5.注释
     注释的规则与文档字符串类似。两者都使用 reStructuredText 格式。
     如果一个 注释被用于一个说明类属性,在起始的井号( # )后加一个冒号:
class User(object):
  #: the name of the user as unicode string
  name = Column(String)
  #: the sha1 hash of the password + inline salt
  pw_hash = Column(String)

flask编程规范的更多相关文章

  1. Python 浅谈编程规范和软件开发目录规范的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...

  2. python浅谈编程规范和软件开发目录规范的重要性

    前言 我们这些初学者,目前要做的就是遵守代码规范,这是最基本的,而且每个团队的规范可能还不一样,以后工作了,尽可能和团队保持一致,目前初学者就按照官方的要求即可 新人进入一个企业,不会接触到核心的架构 ...

  3. Batsing的网页编程规范(HTML/CSS/JS/PHP)

    特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...

  4. JAVA编程规范(下)

    JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1.     通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2.     ...

  5. JAVA 编程规范(上)

    2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1.      应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...

  6. 使Eclipse符合Java编程规范

    编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...

  7. flex+AS3编程规范

    flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/   1.  缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...

  8. Python编程规范(PEP8)

    Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...

  9. Python 编程规范-----转载

    Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...

随机推荐

  1. Workflow:Workflow 目录

    ylbtech-Workflow:Workflow 目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:ht ...

  2. 用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单

    目录 目录 前文列表 修改 User Model Flask Bcrypt 将 Bcrypt 应用到 User Model 中 创建登陆表单 前文列表 用 Flask 来写个轻博客 (1) - 创建项 ...

  3. 大众点评Java开发实时应用监控平台-CAT

    CAT介绍 CAT是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控. CAT作为大众点评网基础监控组件,它已经在中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等)中得到广泛应 ...

  4. Codeforces 1114E(数学+随机算法)

    题面 传送门 分析 通过二分答案,我们显然可以求出数组中最大的数,即等差数列的末项 接着随机取一些数组中的数,对他们两两做差,把得到的差取gcd即为公差 例a={1,5,9,13},我们随机取了1 9 ...

  5. Dijkstra的优先队列

    模板 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> ...

  6. centos7 部署镜像仓库 harbor步骤详解

    一.基础设置  1.1 安装vim.wget yum install -y vim wget  1.2 卸载home.扩大root 如果考虑镜像仓库是给研发团队使用,需要配置较大容量的,因为cento ...

  7. 安装软件 学习linux命令

    nm -D /usr/lib64/libstdc++.so.6 | grep GLIBCnm dumps named symbols, -D for dynamic libs, and grep fo ...

  8. firefox浏览器强制取消自动更新

    问题:Firefox浏览器,在浏览器的设置中已经设置了取消自动升级,实际退出Firefox浏览器重新启动浏览器后还是会升级到最新版本.影响:Firefox浏览器不同的版本的插件的支持兼容不一样,如果需 ...

  9. jQuery查阅api手册

    原文&出处:jQuery API 3.3.1 速查表  --作者:Shifone http://jquery.cuishifeng.cn/

  10. 【Flutter学习】组件通信(父子、兄弟)

    一,概述 flutter一个重要的特性就是组件化.组件分为两种状态,一种是StatefulWidget有状态组件,一种是StatelessWidget无状态组件. 无状态组件不能更新状态,有状态组件具 ...