基于Flask实现后台权限管理系统 - 导言

网上有这样一个段子,在评论语言好坏的时候,都会有人评论说PHP是世界上最好的语言,人生苦短我用Python,这里姑且不去评论语言的好坏,每一个语言存在都有它的价值,譬如C语言适合底层开发,整个Linux操作系统几乎都是用C语言开发的,而像Go语言适合高并发的网络开发一样,并不是说像Go干不了其它事情,只是更适合某种应用场景。
谈到python之美,我认为这里有两个流派:python和pythonic。在我理解,Pythonic 就是很Python的Python代码,也就是用非常优美的python代码实现功能。举例说明:
我们要打开文件进行处理,在处理文件过程中可能会出错,但是,我们需要在处理文件出错的情况下,也顺利关闭文件。
传统风格的Python代码:

1 file= open(C:\data.txt')
2   try: for line in file: 
3     ...... 
4   finally: 
5      file.close()

 

Pythonic的代码:

1 with open(c:\data.txt') as file:
2   for line in file:
3     ......

 

通过with上下文管理,无需考虑资源释放问题以及异常情况下的资源释放问题,上下文管理器会帮你去处理。
再举一个例子:
字符串链接

1 names = ['1', '2', '3', '4', '5', '6', '7', '8'] 
2 s = names[0] for name in names[1:]:
3 s += ', ' + name print(s)

 

pythonic

1 print(', '.join(names))

 

可见pythonic的代码是如此的简洁和优雅。
具体更多的pythonic的代码,大家可以参考相关书籍,平时在学习和工作中注意积累。关于pythonic,这里不得不来一段python之禅,在python控制台下,输入:
import this
会显示下面内容:
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

中文意思如下:
Python之禅 by Tim Peters

优美胜于丑陋
明了胜于晦涩
简洁胜于复杂
复杂胜于凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
即便假借特例的实用性之名,也不可违背这些规则
不要包容所有错误,除非你确定需要这样做
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案
虽然开始这并不容易,因为你不是Python之父
做也许好过不做,但不假思索就动手还不如不做
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然
命名空间是一种绝妙的理念,我们应当多加利用

转载于:https://www.cnblogs.com/99code/p/7530773.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5-1 unittest框架使用

unittest是python的一个单元测试框架,内置的,不需要pip install 什么什么的。直接在py文件里面调用 import unittest。 他这个框架是怎么回事呢,他可以对数据初始化,然后执行测试(里面有断言功能就是判断返回是否正确…

bzoj 4573: [Zjoi2016]大森林

Description 小Y家里有一个大森林,里面有n棵树,编号从1到n。一开始这些树都只是树苗,只有一个节点,标号为1。这些树 都有一个特殊的节点,我们称之为生长节点,这些节点有生长出子节点的能力。小Y掌握了一种魔…

Unity3D在C#编程中的一些命名空间的引用及说明

System包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、属性和处理异常的基础类和基类。其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对…

docker入门简介

简介docker(容器技术)是实现虚拟化技术的一种方案,通过利用linux中命名空间,控制组和联合文件系统这个三个主要技术,来实现应用程序空间的隔离.通过对应用程序运行环境的封装来生成镜像并部署来实现跨平台,一定程度上加快了服务交付的整体流程.这篇文章主要介绍docker的一些基本…

Highcharts 配置选项详细说明

http://www.runoob.com/highcharts/highcharts-setting-detail.html 转载于:https://www.cnblogs.com/mengfangui/p/8969121.html

linux下的启停脚本

linux下的根据项目名称,进行进程的启停脚本 #!/bin/bashJAVA/usr/bin/java APP_HOME/opt/program/qa/wechat APP_NAMEprogramname.jar APP_PARAM"--spring.config.location${APP_HOME}/application.properties --logging.path${APP_HOME}"case $1 in star…

python 网页爬取数据生成文字云图

1. 需要的三个包: from wordcloud import WordCloud #词云库 import matplotlib.pyplot as plt #数学绘图库 import jieba; 2. 定义变量(将对于的变量到一个全局的文件中): import re; pdurl_firsthttps://movie.do…

python---重点(设计模式)

前戏:设计模式简介 设计模式是面向对象设计的解决方案,是复用性程序设计的经验总结。(与语言无关,任何语言都可以实现设计模式) 设计模式根据使用目的的不同而分为创建型模式(Creational Pattern&#xff0…

洛谷 题解 P2010 【回文日期】

因为有8个字符,所以可得出每一年只有一个回文日期。 因此只要判断每一年就行了。 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这个月份和这个日期。 具体…

线程相关

1、启动线程1.11 new Handler()形式new Handler(mContext.getMainLooper()).post(newOnekeyBindFrameActivity.NetworkThread());1.12new Handler().postDelayed(new StatusCheckLoginBindFrameThread(), IoTCultivatePlantConfig.START_ACTIVITY_POST_DELAYED);1.2 new Thread…

验证Oracle收集统计信息参数granularity数据分析的力度

最近在学习Oracle的统计信息这一块,收集统计信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, ---所有者名字tabname VARCHAR2, ---表名partname VARCHAR2 DEFAULT NULL, ---要分析的分区名estimate_percent NUMBER DEFAULT NULL, …

Python之NumPy(axis=0 与axis=1)区分

Python之NumPy(axis0 与axis1)区分 转载于:https://www.cnblogs.com/greatljg/p/10802392.html

Python Web开发:开发wsgi中间件

本文参考了: github.com/alanctkc/ws…Youtube : Creating WSGI Middleware上篇文章简要提到:wsgi 规范中的 app 是一个可调用对象,可以通过嵌套调用的方式实现中间件的功能。这篇文章就来亲自动手实现一下。 此文的重点在于 app 端&#xff…

20165320 第九周学习总结

主要内容: 1.URL类 URL类是java.net包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序。URL 的构造方法:try { URL url new URL ("http://www.google.com"); } catch (MalformedURLException e) {System.out.println(&…

Python 函数的执行流程-函数递归-匿名函数-生成器

1 函数的执行流程函数的执行需要对函数进行压栈的,什么是压栈呢,简而言之就是在函数执行时在栈中创建栈帧存放需要变量以及指针的意思。具体涉及的知识非常多,这里就已一个Python脚本简单进行分析。当我们运行上面代码时,它的执行…

python 课堂笔记-for语句

for i in range(10):print("----------",i)for j in range(10):print("world",j)if j> 5:break 转载于:https://www.cnblogs.com/leon-zyl/p/7542466.html

【2】信息的表示和处理

1.现代计算机存储和处理的信息都以二值信号表示。 2.机器为什么要使用二进制进行存储和处理? 答:二值信号能够很容易的被表示、存储、传输。例如: 可以表示为穿孔卡片上有洞和无洞、导线上的高压和低压,顺逆时针的磁场。 3.大多数…

java版b2b2c社交电商spring cloud分布式微服务(二) 服务消费者(rest+ribbon)

一、ribbon简介 Ribbon is a client side load balancer which gives you a lot of control over the behaviour of HTTP and TCP clients. Feign already uses Ribbon, so if you are using FeignClient then this section also applies. —–摘自官网 ribbon是一个负载均衡客…

[学习笔记]支配树

被支配树支配的恐惧 定义 显然,这个支配关系是一个树(或者如果有的点不能从r到达,就是一个树一堆点)。 首先不会成环,其次也不会是DAG 即如果A支配C,B支配C,那么A和B之间必然有支配关系 解法 首…

RBAC 权限设计(转载)

来源 :https://blog.csdn.net/rocher88/article/details/43190743 这是我在网上找的一些设计比较好的RBAC权限管理不知道,像新浪、搜狐、网易、百度、阿里巴巴、淘宝网的RBAC用户权限这一块,都是这种细颗粒的RBAC设计开发,还是把他…