最近对Python产生了兴趣,前几天看了下网上的资料,熟悉了下基本语法。俗话说“实践出真知”,有了基本的了解后得实践一下,这样便于加深对Python的理解。
那做点什么呢?准备学习一下Django开发。据网上描述了解到,它是个快速开发的web框架,便于快速推出一个web的模型,演示。
谷歌了下,找到几个链接:
官方入门教程(英文,当前官网默认是1.5,你也可以跳到其它版本) https://docs.djangoproject.com/en/1.5/
官方入门教程中文版(1.4,发现只翻译到入门的前两节) http://django-document-cn.readthedocs.org/en/latest/
Django Book 2.0(翻译的不错,还有评论。但版本旧了点,英文困难的可以参考一下) http://djangobook.py3k.cn/2.0/
首先要准备的就是开发环境了:
1、Python(2.5~2.7)
网上下了个2.7.3版本,巴拉巴拉安装……不细表了。
2、下载django开发包。
下的是1.5版本。解压,命令行进入其目录运行“
python setup.py install”,安装……
3、创建django项目 https://docs.djangoproject.com/en/1.5/intro/tutorial01/
根据官方文档说明,命令行进入你喜欢的地方运行“
python django-admin.py startproject mysite”创建mysite项目(实际开发时,还是推荐使用Eclipse,装上python的PyDev插件。直接创建django项目更方便)。
windows会出现如下错误提示:
D:\Temp>python django-admin.py startproject mysite
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
windows下需带上安装路径创建,例如python安装在C盘下:“
python C:\Python27\Scripts\django-admin.py startproject mysite”
官方文档中给出具体不同环境下的说明:
“This will create a mysite directory in your current directory. If it didn’t work, see Problems running django-admin.py.”
4、启动开发server
命令行进入创建的mysite目录,运行“
python manage.py runserver”,服务即提示跑起来了。可登录“http://127.0.0.1:8000”看一下效果。
可能端口冲突、或需要从别的机器访问该应用,可按照如下方式启动:
a.指定端口号
python manage.py runserver 8080
b.允许从你的IP地址访问(默认只能本机127.0.0.1访问)
python manage.py runserver 0.0.0.0:8000
5、安装数据库
Django支持四种数据库:PostgreSQL,SQLite3,MySQL,Oracle.
可以修改"
mysite/settings.py"文件,来设置相应的数据库。不过作为初学者,使用Python自带的SQLite方便。
列一下该配置文件中的几个主要变量。
TIME_ZONE:
默认时区是“America/Chicago”,需要修改为你当前的时区(国内“Asia/Shanghai”)。
LANGUAGE_CODE = 'zh-cn'
语言设为中文
INSTALLED_APPS:
项目默认安装的一些应用,这些应用依赖于数据库。
命令行进入manage.py的目录,执行“
python manage.py syncdb”命令将数据库初始化一下。你会看但相关的Creating table信息,并提示你是否创建一个超级用户。
6、创建模型
命令行继续在该目录创建投票应用 “
python manage.py startapp polls”
打开“polls\models.py”,编写两个Python类:Poll、Choice。
7、激活模型
也就是把新建的那两个模型类初始化一下,让它在数据库中也生成相应的表。
打开"
mysite/settings.py"文件,在"INSTALLED_APPS"属性中加入polls。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)
命令行中执行以下命令,会打印出polls应用相关模型的SQL语句(官方文档中还提及其它各种SQL生成命令,感兴趣的可以试试)。
python manage.py sql polls
如果模型有错误,会有提示信息出来。确认无误可执行“
python manage.py syncdb”完成数据库表映射。
8、使用API
这一块主要讲的是,如何将该项目的DB部分在python的shell中进行CRUD等测试。并推荐在写models时添加__unicode__()方法。
这是一个类似于java的toString方法。有了该方法,在django打印查询到的models对象时,会显示该方法返回的值。
class Poll(models.Model):
#
def __unicode__(self):
return self.question
class Choice(models.Model):
#
def __unicode__(self):
return self.choice_text