Ubuntu创建Django项目的语句流程

125 阅读1分钟

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 表中id1的数据。
	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) 查询出id2的图书中所有英雄人物的信息。
	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))})