django-notes 未完待续

安装运行

1
2
3
pip install Django==1.6.8
如果你用的是2.6的python那就得手动安装了
python D:\django-1.6.8\setup.py install

测试是否安装成功

1
2
import django
print django.get_version()

创建项目

1
django-admin.py startproject HelloWorld

自动生成的目录结构:

HelloWorld
├── HelloWorld
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

文件说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

启动服务

1
python manage.py runserver 0.0.0.0:8000

创建APP

app是包含着python文件的一个目录,在Django中一个app相当于一个组件。比如Blog、Forum、Wiki

1
python manage.py startapp firstapp

自动生成的目录结构:

firstapp
├── __init__.py
├── admin.py    管理接口
├── apps.py
├── migrations  保存迁移文件
│   └── __init__.py
├── models.py   数据层,比如表的结构,以及如何查询。
├── tests.py    测试app
└── views.py    控制层

此时在HelloWord中的settings.py中录入该APP即可
INSTALLED_APPS = [
‘django.contrib.admin’,

‘django.contrib.staticfiles’,
‘firstapp’,
]

model操作

1
2
3
4
5
#models.py文件
class Item(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
amount = models.IntegerField()

上面其实定义了一个表格,其中字段类型有多种:

--数字类型
IntegerField:   -1,0,1,20
DecimalField:   0.5,3.14
--文本类型
CharField:  "product Name"
TextField:  "To elaborate on my point..."
EmailField: george@email.com
URLField:   www.example.com
--文件类型
FileField:  user_uploaded.docx
ImageField: best_avatar.jpg
--其他类型
BooleanField:   True,False
DataTimeField:  datetime(1960,1,1,8,0,0)

具体还包含了一些属性,可以参考官方文档Model field reference

Migration 操作

Model用来定义数据库表的结构,而Migration用来生成脚本修改数据库结构。

初始化Migration

当一个新的model定义以后(或者修改字段),需要migration来创建数据库表。

生成migrate,你可以看到firstapp里面migrations目录中新生成了几个文件。

1
python manage.py makemigrations

执行migrate

1
python manage.py migrate

可以使用SQLite的浏览工具查看下我们的数据库是否正确建立了表格。

显示migration历史

python manage.py migrate --lis

Django设置

settings.py需要设置的地方

  • INSTALLED_APPS 当添加一个Django app的时候
  • TEMPLATES 当首次添加一个template的时候
  • STATICFILES_DIRS 添加静态文件的时候比如CSS,JS脚本
  • DEBUG 默认为true,正式环境设置为false
  • DATABASES 当你修改数据库引擎的时候,诸如PostgreSQL,MySQL等。

详细设置可查看官方文档Django settings