环境
win10家庭版64位 + python 3.5 + Django 1.8.2
1.创建virtualenv目录
开始/运行/cmd回车,进入cmd窗口,到自己指定的目录下创建virtualenv目录
D:pythondjango_project>mkdir mysite
D:pythondjango_project>cd mysite
2.安装virtualenv
这里使用pip进行安装
D:pythondjango_projectmysite>pip install virtualenv
Collecting virtualenv
Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 521kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
安装过程可能有失败,出现红色的提示文字,这时直接重新执行安装,一般就可以了。
3.创建virtualenv虚拟环境
使用virtualenv env来创建一个名字为env的虚拟环境
D:pythondjango_projectmysite>virtualenv env
Using base prefix 'd:\users\ajie\appdata\local\programs\python\python35'
New python executable in D:pythondjango_projectmysiteenvScriptspython.exe
Installing setuptools, pip, wheel...done.
进入env目录,可以看到目录结构如下:
D:pythondjango_projectmysite>cd env
D:pythondjango_projectmysiteenv>dir
驱动器 D 中的卷是 work
卷的序列号是 F814-4F91
D:pythondjango_projectmysiteenv 的目录
2017/08/08 19:21 <DIR> .
2017/08/08 19:21 <DIR> ..
2017/06/22 11:25 <DIR> Include
2017/08/08 19:21 <DIR> Lib
2017/08/08 19:21 60 pip-selfcheck.json
2017/08/08 19:25 <DIR> Scripts
2017/08/08 19:21 <DIR> tcl
1 个文件 60 字节
6 个目录 33,233,276,928 可用字节
进入虚拟环境
通过env下Scripts目录中的activate.bat批处理文件,开启虚拟环境
D:pythondjango_projectmysiteenv>cd Scripts
D:pythondjango_projectmysiteenvScripts>activate.bat
4.在虚拟环境中安装Django
安装Django1.8.2
进入虚拟环境,使用pip安装Django
(env) D:pythondjango_projectmysiteenvScripts>pip install django==1.8.2
5.创建项目
命令django-admin startproject test1
设计介绍
本示例完成“图书-英雄”信息的维护,需要存储两种数据:图书、英雄
图书表结构设计:
表名:BookInfo
图书名称:btitle
图书发布时间:bpub_date
英雄表结构设计:
表名:HeroInfo
英雄姓名:hname
英雄性别:hgender
英雄简介:hcontent
所属图书:hbook
图书-英雄的关系为一对多
6.创建应用
创建应用的命令:
python manage.py startapp booktest
定义模型类
有一个数据表,就有一个模型类与之对应
打开models.py文件,定义模型类
引入包from django.db import models
模型类继承自models.Model类
说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长
当输出对象时,会调用对象的str方法
models.py
from django.db import models class BookInfo(models.Model): btitle = models.CharField(max_length=20) bpub_date = models.DateTimeField() def __str__(self): return self.pk class HeroInfo(models.Model): hname = models.CharField(max_length=20) hgender = models.BooleanField() hcontent = models.CharField(max_length=20) hBook = models.ForeignKey('BookInfo') def __str__(self): return self.pk
生成数据表
激活模型:编辑settings.py文件,将booktest应用加入到installed_apps中
7.生成迁移文件:根据模型类生成sql语句
python manage.py makemigrations
执行迁移:执行sql语句生成数据表
python manage.py migrate
8.测试数据操作
进入python shell,进行简单的模型API练习
python manage.py shell
进入shell后提示如下:
引入需要的包:
from booktest.models import BookInfo,HeroInfo
from django.utils import timezone
from datetime import *
查询所有图书信息:
BookInfo.objects.all()
新建图书信息:
b = BookInfo()
b.btitle="射雕英雄传"
b.bpub_date=datetime(year=1990,month=1,day=10)
b.save()
查找图书信息:
b=BookInfo.objects.get(pk=1)
输出图书信息:
b
b.id
b.btitle
修改图书信息:
b.btitle=u"天龙八部"
b.save()
删除图书信息:
b.delete()