Django 环境搭建与目录结构
Django 环境搭建与目录结构
使用 pip 组件进行安装先安装 pip 组件:
Ubuntu(Debian)1sudo apt-get install python3-pip
Fedora1yum install python3-pip
Windows使用 get-pip.py 进行安装。直接下载 get-pip.py ,然后在命令行下执行即可安装 pip 组件:
1$ python3 get-pip.py
macOS在 macOS 下,建议 Python 通过 Homebrew 进行安装。使用 Homebrew 安装后的 Python 自带 pip 组件。
如果 pip 版本过低,可以使用以下命令对 pip 进行升级(Windows 用户无需输入 sudo):
1$ sudo pip3 install --upgrade pip
在 pip 安装好的情况下,输入以下命令安装指定版本的 Django。由于本课程使用的 Django 版本号为 1.8.13,则输入以下命令即可:
1$ sudo pip3 install Django==1.8.13
使用源码包安 ...
Django Hello World
Django Hello World
Django 的特点Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站!何为优雅,请看 Django 的以下特点:
强大的数据库功能用 Python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要你也能执行 SQL 语句进行数据库的增、删、查、改操作。
自带的强大后台功能几行简单的代码就能让你的网站拥有一个强大的后台,轻松管理你的内容!
优雅的链接路由用正则匹配方式匹配链接,传递到对应的函数,随意定义,如你所愿。
Model(模板)系统易于扩展的 Model 系统,设计简易。易于代码解耦。
缓存系统与 memcached 或其他的缓存系统联用,更出色的表现,更快的加载速度。
国际化支持多语言英语,允许自定义翻译的字符,轻松翻译成多国语言。
Hello World
关于 Django 的环境搭建我们将在下一节中详细介绍,下面部分为初学 Django 的初体验,让读者感受 Django 搭建 Web 服务端的快捷。
在用户根目录下,新建一个 django 目录,用于保存本 ...
Python Flask 介绍
Python Flask 介绍
什么是 Flask?Flask 是一个 web 框架。也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序。这个 web 应用程序可以使一些 web 页面、博客、wiki、基于 web 的日历应用或商业网站。
Flask 属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖于外部库的框架。这既有优点也有缺点,优点是框架很轻量,更新时依赖少,并且专注安全方面的 bug,缺点是,你不得不自己做更多的工作,或通过添加插件增加自己的依赖列表。Flask 的依赖如下:
Werkzeug 一个 WSGI 工具包
jinja2 模板引擎
维基百科 WSGI 的介绍:
Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口)。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。
什么是模板引擎?你搭建过一个网站吗?你面对过保持网站风格一致的问题吗,你不得不写多次相 ...
Python 项目结构
Python 项目结构
实验准备我们的实验项目名为 factorial。
12$ mkdir factorial$ cd factorial/
主代码我们给将要创建的 Python 模块取名为 myfact,因此我们下一步创建 myfact 目录。
12$ mkdir myfact$ cd myfact/
主代码将在 fact.py 文件里面。
1234567891011121314151617181920"myfact module"def factorial(num): """ 返回给定数字的阶乘值 :arg num: 我们将计算其阶乘的整数值 :return: 阶乘值,若传递的参数为负数,则为 -1 """ if num >= 0: if num == 0: return 1 return num * factorial(num -1) else: ...
Python 测试
Python 测试
应该测试什么?如果可能的话,代码库中的所有代码都要测试。但这取决于开发者,如果写一个健壮性测试是不切实际的,你可以跳过它。就像 Nick Coghlan(Python 核心开发成员) 在访谈里面说的:有一个坚实可靠的测试套件,你可以做出大的改动,并确信外部可见行为保持不变。
单元测试这里引用维基百科的介绍:
在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
单元测试模块在 Python 里我们有 unittest 这个模块来帮助我们进行单元测试。
阶乘计算程序在这个例子中我们将写一个计算阶乘的程序 factorial.py。
1234567891011121314151617181920212223242526272829import sysdef fact(n): ""&q ...
Python Virtualenv
Python Virtualenv
安装首先安装 pip3。
12$ sudo apt-get update$ sudo apt-get install python3-pip
用如下命令安装 virtualenv:
1$ sudo pip3 install virtualenv
用法我们会创建一个叫做 virtual 的目录,在里面我们会有两个不同的虚拟环境。
1$ mkdir virtual
下面的命令创建一个叫做 virt1 的环境。
12$ cd virtual$ virtualenv virt1
现在我们激活这个 virt1 环境。
12$ source virt1/bin/activate(virt1)shiyanlou:~/$
提示符的第一部分是当前虚拟环境的名字,当你有多个环境的时候它会帮助你识别你在哪个环境里面。
现在我们将安装 redis 这个 Python 模块。
1(virt1)$ sudo pip3 install redis
此处输入图片的描述
使用 deactivate 命令关闭虚拟环境。
12(virt1)$ deact ...
Python 迭代器、生成器、装饰器
Python 迭代器、生成器、装饰器
迭代器Python 迭代器(Iterators)对象在遵守迭代器协议时需要支持如下两种方法。iter(),返回迭代器对象自身。这用在 for 和 in 语句中。next(),返回迭代器的下一个值。如果没有下一个值可以返回,那么应该抛出 StopIteration 异常。
123456789101112131415class Counter(object): def __init__(self, low, high): self.current = low self.high = high def __iter__(self): return self def __next__(self): #返回下一个值直到当前值大于 high if self.current > self.high: raise StopIteration else: self.current += ...
Python PEP8 代码风格指南
Python PEP8 代码风格指南
介绍这份文档给出的代码约定适用于主要的 Python 发行版所有标准库中的 Python 代码。请参阅相似的 PEP 信息,其用于描述实现 Python 的 C 代码规范[1]。
这份文档和 PEP 257(文档字符串约定) 改编自 Guido 的 Python 风格指南原文,从 Barry 的风格指南里添加了一些东西[2]。
随着时间的推移,这份额外约定的风格指南已经被认可了,过去的约定由于语言自身的发展被淘汰了。
许多项目有它们自己的编码风格指南。如果有冲突,优先考虑项目规定的编码指南。
愚蠢的一致性就像没脑子的妖怪Guido 的一个主要见解是读代码多过写代码。这里提供指南的意图是强调代码可读性的重要性,并且使大多数 Python 代码保持一致性。如 PEP 20 所述,“Readability counts”。
风格指南是关于一致性的。风格一致对于本指南来说是重要的,对一个项目来说是更重要的,对于一个模块或者方法来说是最重要的。
但是最最重要的是:知道什么时候应该破例–有时候这份风格指南就是不适用。有疑问时,用你最好的判断力,对比其它的例子来 ...
Python3 挑战实验 -- 类和Collection
Python3 挑战实验 – 类和Collection
介绍我们之前通过3个课程学习了 Python 的类,模块和Collection 模块的知识。这次我们通过一个简单的挑战实验来测试一下我们对之前知识点的掌握程度。
目标改写我们在第11节类这个模块当中 2.3 继承 部分的 student_teacher.py 脚本,在Person()类中增添函数get_grade()。对于教师类,该函数可以自动统计出老师班上学生的得分情况并按照频率的高低以A: X, B: X, C: X, D: X 的形式打印出来。对于学生类,该函数则可以以Pass: X, Fail: X 来统计自己的成绩情况(A,B,C 为 Pass, 如果得了 D 就认为是 Fail)。
student_teacher.py 文件可以通过在Xfce 终端中输入如下代码来获取
1wget http://labfile.oss.aliyuncs.com/courses/790/student_teacher.py
要求请把最终的student_teacher.py 代码文件放在 ...
Python Collections 模块
Python Collections 模块
Counter在这个实验我们会学习 Collections 模块。这个模块实现了一些很好的数据结构,它们能帮助你解决各种实际问题。
1>>> import collections
这是如何导入这个模块,现在我们来看看其中的一些类。
Counter 是一个有助于 hashable 对象计数的 dict 子类。它是一个无序的集合,其中 hashable 对象的元素存储为字典的键,它们的计数存储为字典的值,计数可以为任意整数,包括零和负数。
我们可以这样查看 Counter 的帮助信息,事实上这些信息来源于 Counter 的文档字符串(collections.Counter.__doc__)。
下面我们来看一个例子,例子中我们查看 Python 的 LICENSE 文件中某些单词出现的次数。
Counter 示例123456>>> from collections import Counter>>> import re>>> path = '/u ...