1. 安装虚拟环境
sudo pip install virtualenv
2. 安装虚拟环境拓展包
sudo pip install virtualenvwrapper
3. 编辑 ~/.bashrc 文件,在最后末尾追加
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
4. 使用 source.bashrc 生效
source.bashrc
5. 创建一个Python3的虚拟环境
mkvirtualenv -p python3 虚拟环境名称
6. 进入刚刚创建的虚拟环境工作
workon 虚拟环境名称
7. 查看本机上有几个虚拟环境
workon + 空格 + 两个tab键
8. 推出当前虚拟环境
deactivate 虚拟环境名称
9. 删除一个虚拟环境
rmvirtualenv 虚拟环境名称
10. 虚拟环境安装包名/模块
pip install 包名
11. 查看安装了哪些包
pip list
pip freeze
12. 安装Django环境
pip install django==1.8.2
13. 创建Django项目,必须在进入虚拟环境后创建
django-admin startproject 项目名
14. 创建一个Django应用
python manage.py startapp 应用名
15 应用注册,修改 settings.py 中的 INSTALLED APPS 配置项,把刚刚注册的应用追加到末尾,格式:
' 刚刚创建的应用 '
16. 启动项目
python manage.py runserver
17. 用Django内嵌的ORM框架设计模型类
18. 生成迁移文件,,首个迁移文件出现在 migrations 目录下,名称为 0001_initial.py
python manage.py makemigrations
19. 执行迁移生成表,生成表的默认命名: 应用名_模型类名小写
python manage.py migrate
20. 通过模型类操作数据表,静入shell 的命令:
python manage.py shell
21. 操作步骤:
# 从模型中导出设计好的类
from booktest.models import BookInfo,HeroInfo
1) 向 booktest_bookinfo 表中写入一条数据。(增删改查)
b = BookInfo() # 定义一个 BookInfo 类的对象
b.btitle ='天龙八部' # 定义b对象的属性并赋值
b.bpub_date = date(1990,10,11)
b.save() # 才会将数据保存进数据库
2) 查询出 booktest_bookinfo 表中id为1的数据。
b = BookInfo.objects.get(id=1)
3) 在上一步的基础上更改b对应图书的出版日期。
b.bpub_date = date(1989,10,21)
b.save() # 更新表格中的数据
4) 紧接上一步,删除b对应的图书的数据。
b.delete() # 删除表中id为1的数据
5) 向 booktest_heroInfo 表中插入一条数据。
h = HeroInfo() # 生成一个HeroInfo类对象
h.hname = '郭靖' # 给对象赋值
h.hgender = False
h.hcomment = ‘降龙十八掌’
b2 = BookInfo.objects.get(id=2) #生成一个id==2的对象存储BookInfo中id==2的书的全部信息
h.hbook = b2 #给关系属性赋值,英雄对象所属的图书对象(即:英雄属于哪本书)
h.save()
6) 查询图书表里面的所有内容。
BookInfo.objects.all()
查询英雄的所有数据(所有英雄)
HeroInfo.objects.all()
7) 查询出id为2的图书中所有英雄人物的信息。
b = BookInfo.objects.get(id=2)
b.heroinfo_set.all() #查询出b图书中所有英雄人物的信息
22. 修改时区和本地化,修改 settings.py 文件中的
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
23. 创建管理员
python manage.py createsuperuser
24. 在应用的 admin 文件中注册模型类,告知Django框架根据注册的模型类生成对应的后台管理界面
1.导入要注册后台管理员界面的模板
from booktest.models import LOLcity
from booktest.models import LOLhero
2.注册模板
# Register your models here.
admin.site.register(LOLhero)
admin.site.register(LOLcity)
25. 运行服务器:输入 http://127.0.0.1:8000/admin/ 进入管理员界面
26. 优化显示,在模板各函数中修改 __str__魔法方法,使其返回要返回的东西
def __str__(self):
# 返回书名
return self.cityname
27. 优化后台管理显示,显示更多管理信息,并在注册信息中讲管理类赋值声明
# 自定义英雄联盟城市管理类
class LOLcityAdmin(admin.ModelAdmin):
list_display = ["id", "cityname", "citycreate"]
# 自定义英雄管理类
class LOLheroAdmin(admin.ModelAdmin):
list_display = ["id", "hname", "hgender", "hcomment", "hcity"]
# Register your models here.
admin.site.register(LOLhero, LOLheroAdmin)
admin.site.register(LOLcity, LOLcityAdmin)
视图部分:
28. 在应用中新建一个 urls ,并参照系统文件的urls添加信息
from django.conf.urls import url
# 严格匹配开头和结尾
urlpatterns = []
29. 修改系统文件的 urls 中的内容 添加刚刚新建的urls的路径
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
# include包含应用中的urls文件
url(r'^', include('booktest.urls'))
]
30. 当输入网址的时候,系统会自动先在系统的urls中进行正则匹配路径,一旦匹配就会进入路径,之后进入应用的 urls 中匹配,如此先建立一个 index 路径,切记严格匹配开头结尾
from django.conf.urls import url
from booktest import views
# 严格匹配开头和结尾
urlpatterns = [
url(r'^index$', views.index), # 建立/index和视图index之前的关系
]
31. 匹配成功后执行 views.index 中的视图项
from django.shortcuts import render
from django.http import HttpResponse
from booktest.models import LOLcity
# Create your views here.
def index(request):
# 进行处理,和M和T进行交互
# return HttpResponse("你好,我是蔡徐坤")
return render(request, 'booktest/index.html',
{"content": "Hello world", "list": list(range(10))})