django 学习笔记(一)

本文介绍如何从零开始搭建Django开发环境,包括虚拟环境的创建、项目的初始化、模型的定义及数据库迁移等关键步骤,并演示了如何运行Django服务器。

再一次开始了django的学习,希望这次能够因为实际应用的开发深入进去。

安装

django开发环境搭建文档 版本 1.5.5 (文档是1.5.5)

    mkvirtualenv djtest  
    pip install django==1.5.5`

一、Writing your first Django app part1

  • 修改端口 python manage.py runserver 8080
  • 外部ip访问 python manage.py runserver 0.0.0.0:8000

建立一个项目

django-admin.py startproject mysite

目录结构

djtest/mysite
 |---
 |---mysite
 |     |---urls.py
 |     |---__init__.py
 |     |---wsgi.py
 |     |---settings.py
 |---manage.py

设置 settings.py

数据库设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': '/home/***/djtest/mysite/mysite/mysite.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                   
        'PORT': '',                  
    }
}

设置中文环境

TIME_ZONE = 'Asia/Shanghai'
LANGUAGE_CODE = 'zh-cn'

建立必要的表

python manage.py syncdb

建立应用

python manage.py startapp polls

目录结构

djtest/mysite/polls
    |---
    |---__init__.py
    |---models.py
    |---views.py
    |---tests.py

建立数据 models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

修改 settings.py 激活 polls应用

INSTALLED_APPS = (
    ...
    'polls',
)

在添加model前,需要告诉South准备迁移数据库

(djtest)$ python manage.py schemamigration elist --initial
(djtest)$ python manage.py migrate elist

这样south会建立一个合并文件,用于应用和恢复数据库操作,在修改django 的 model后,可以使用命令

(djtest)$ python manage.py schemamigration elist --auto     
       #检测对models的更改,但并不实际提交数据库
(djtest)$ python manage.py migrate elist  #实际更改数据库

增加 unicode() 方法

class Poll(models.Model):
    # ...
    def __unicode__(self):  # Python 3: def __str__(self):
        return self.question

class Choice(models.Model):
    # ...
    def __unicode__(self):  # Python 3: def __str__(self):
        return self.choice_text

增加一个自定义方法

import datetime
from django.utils import timezone
# ...
class Poll(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

转载于:https://my.oschina.net/bailiangcn/blog/222188

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值