Python Fundamental for Django

Strings
>>> s = ‘django is cool‘
>>> words = s.split()
>>> words
[‘django‘, ‘is‘, ‘cool‘]
>>> ‘ ‘.join(words)
‘django is cool‘
>>> s.count(‘o‘)
3
>>> s.find(‘go‘)
4
>>> s.replace(‘django‘, ‘python‘)
‘python is cool‘

一些常用的string函数:

string method description
count Number of occurrences of substring in string
find Search for substring [also see index, rfind, rindex]
join Merge substrings into single delimited string
replace Search and replace (sub)string
split Split delimited string into substrings [also see splitlines]
startswith Does string start with substring [also see endswith]
strip Remove leading and trailing whitespace [also see rstrip, lstrip]
title Title-case string [also see capitalize, swapcase]
upper UPPERCASE string [also see lower]
isupper Is string all UPPERCASE? [also see islower, and so forth]

格式化输出:

>>> ‘%s is number %d‘ % (‘python‘, 1)
‘python is number 1‘
>>> hi = ‘‘‘hello
baby‘‘‘
>>> hi
‘hello\nbaby‘
>>> print hi
hello

baby
Tuples

tuple里面的元素不能被修改,这与它本身的实现机制有关,在传递参数的时候如果不希望参数被修改也是一种不错的选择。

>>> a = (‘one‘, ‘two‘)
>>> a[0]
‘one‘
>>> c = (‘only‘,)
>>> c[0]
‘only‘
>>> d = ‘only‘,
>>> d[0]
‘only‘

这里需要注意的是声明一个tuple的时候关键是逗号,如果没有下面的例子就只是一个string,注意到这个非常重要,因为很多django的数据类型用的都是tuple:

>>> b = (‘only‘)
>>> b[0]
‘o‘
Dictionaries

字典是一种有点像哈希表的列表,里面的元素有key和value两个属性。字典的元素可以修改,无序,且大小可以变化。如:

>>> book = {‘title‘:‘django‘, ‘year‘:2008}
>>> ‘title‘ in book
True
>>> book.get(‘pub‘, ‘N/A‘)
‘N/A‘
>>> book[‘pub‘] = ‘Addision‘
>>> book.get(‘pub‘, ‘N/A‘)
‘Addision‘
>>> for key in book:
...     print key, ‘:‘, book[key]
...
year : 2008
title : django
pub : Addision

一些常用函数:

Dictionary Method Description  
keys Keys (also see iterkeys)  
values Values (also see itervalues)  
items Key-value pairs (also see iteritems)  
get Get value given key else default [also see setdefault, fromkeys]  
pop Remove key from dict and return value [also see clear, popitem]  
update Update dict with contents of (an)other dict  
Enumerate
>>> data = enumerate((123, ‘abc‘, ‘hello‘))
>>> for i, value in data:
...     print i, value
...
0 123
1 abc
2 hello
Exception Handling

如尝试打开文件的异常处理:

try:
    f = open(filename, ‘r‘)
except IOError, e:
    return False, str(e)

也可以把多种错误类型放到一个tuple里面,一次过检测:

try:
    process_some_data()
except (TypeError, ValueError,...), e:
    print "ERROR ", e

当然也可以对不同类型的异常用不同的处理方法,在最后一种情况通常加上一种Exception,因为这样可以包括所有的异常情况:

try:
    ...
except (TypeError, ValueError), e:
    ...
except ArithmeticError, e:
    ...
except Exception, e:
    ...
Files
>>> f = open(‘test.txt‘, ‘w‘)
>>> f.write(‘foo\n‘)
>>> f.write(‘bar\n‘)
>>> f.close()
>>> f = open(‘test.txt‘, ‘r‘)
>>> for line in f:
...     print line.rstrip()
...
foo
bar
>>> f.close()
Anonymous Functions

匿名函数使用关键字lambda,由一个表达式组成,代表函数的返回值。通常的使用方式:

lambda args: expression
sorted(list_of_people, key = lambda person: person.last_name)

# 等价于
def get_last_name(person):
    return person.last_name

sorted(list_of_people, key = get_last_name)
* args and ** kwargs

python里面的*不是C语言里面的指针,作为参数传递时,* 表示一个tuple(list), ** 表示dict

例子如下:

def check_web_server(host, port, path):
    ...

调用函数的时候一般用法:

check_web_server(‘127.0.0.1‘, 8080, ‘/admin/‘)

如果把参数作为一个tuple或者dict的形式,可以通过下标的形式传递参数,但是用 * 的方式可以非常方便的完成传参:

host_info = (‘www.python.org‘, 80, ‘/‘)
check_web_server(host_info[0],host_info[1], host_info[2])

check_web_server(*host_info)

host_info = {‘host‘: ‘www.python.org‘, ‘port‘: 80, ‘path‘: ‘/‘}
check_web_server(**host_info)
动态实例化

与其他的一些编程语言不同,python支持类的动态的实例化,如:

>>> class Book(object):
...     def __init__(self, name):
...         self.name = name
...
>>> john = Book(‘John‘)
>>> john.father = ‘Jack‘
>>> print john.father
Jack
时间: 2024-10-12 20:50:14

Python Fundamental for Django的相关文章

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

ubuntu python apache2 wsgi django框架

在ubuntu上通过apatch2和wsgi部署django (亲手做过!!!) 一,我的python.django.apatch2版本: python:python -V 2.7.3 django:python -c "import django; print(django.VERSION)" (1, 9, 4, 'final', 0) apache2:/usr/sbin/apachectl -v Server version: Apache/2.2.22 (Ubuntu) Serv

在独立的python文件调用django api

在独立的python文件调用django api加入下面代码: 1 import os 2 import sys 3 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4 if root not in sys.path: sys.path.append(root) 5 if os.environ.get('DJANGO_SETTINGS_MODULE') == None: os.environ.setdefaul

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

Python攻关之Django(一)

课程简介: Django流程介绍 Django url Django view Django models Django template Django form Django admin (后台数据库管理工具) 1 Django流程介绍 MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和

Python基础(Django三——Model)

本篇内容接上篇Python基础(Django二) 七.Model 1.说明: Model是Django为方便程序操作数据库而诞生的,使用的是ORM模式. 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.简单的说,ORM是通过使用描述对象和数据库之间映射的关系,将程序中的对象自动持久化到关系数据库中. 2.使用: 2-1.创建Model(编辑应用目录下的models.py) from django.db

全面解读Python Web开发框架Django

全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don’t Repeat Yoursef). 花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又 重复发明轮子了).从前台到后台,好好折腾了一把,用到:HTM

Python框架之Django学习笔记(十一)

话说上次说到数据库的基本访问,而数据库我们主要进行的操作就是CRUD,也即是做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete),俗称:增删改查.废话不多说,学习开始. 插入和更新数据 你已经知道怎么做了: 先使用一些关键参数创建对象实例,如下: 1 >>> p = Publisher(name='Apress', 2 ... address='2855 Telegraph Ave.', 3 ... city='Berk

Window下python+Apache+mod_wsgi+Django配置(python2.7)

前言:试着使用python搭建一个网页,分别在windows下和linux下,本篇文章主要讲解Window下python+Apache+mod_wsgi+Django服务器配置过程中遇见的问题和解决方法. 正文: 首先,需要下载python.Apache.mod_wsgi.Django,下载地址如下 mod_wsgi:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi(因为python2.7,所以下载mod_wsgi?4.4.21+ap24vc