搭建虚拟环境
1.在桌面上创建虚拟环境:mkvirtualenv 虚拟环境名称
python@ubuntu:~$ cd Desktop/
python@ubuntu:~/Desktop$ mkvirtualenv h4 创建了一个名为h4的虚拟环境
虚拟环境安装成功后,默认已经工作在h4中:(h4)python@ubuntu:~/Desktop$
闲聊1:查看机器上已存在的虚拟环境
python@ubuntu:~$ ll 回车后就能看到.virtualenvs/目录,所有虚拟环境都存在该目录下,可进入查看
闲聊2:删除虚拟环境 rmvirtualenv 虚拟环境名称
python@ubuntu:~/.virtualenvs$ rmvirtualenv h4
闲聊3:退出虚拟环境 deactivate
(h4)python@ubuntu:~/Desktop$ deactivate
闲聊4:进入虚拟环境 workon 虚拟环境名称
python@ubuntu:~/Desktop$ workon h4
闲聊5:查看有哪些虚拟环境 workon 连续按2次空格键
2.安装虚拟环境需要的包
进入虚拟环境后,可以查看当前虚拟环境中安装了哪些包,使用命令:pip list
(h4)python@ubuntu:~/Desktop$ pip list
或者 pip freeze 查看带版本号
安装Django:
(h4)python@ubuntu:~/Desktop$ pip install django==1.8.2
创建项目
1.在桌面创建一个工程文件夹,须确保在虚拟环境下
(h4)python@ubuntu:~/Desktop$ mkdir django_projects
2.在工程文件下创建一个项目 test01
(h4)python@ubuntu:~/Desktop/django_projects$ django-admin startproject test01
创建应用
在一个项目中可以创建一到多个应用,每个应用进行一种业务处理。
在test01项目中创建一个名为booktest的应用
(h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py startapp booktest
构建MVT
①model层
1.定义模型类
打开booktest应用下的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.btitle.encode('utf-8')
class HeroInfo(models.Model):
hname = models.CharField(max_length=10)
hgender = models.BooleanField()
hcontent = models.CharField(max_length=1000)
hbook = models.ForeignKey(BookInfo)
def __str__(self):
return self.hname.encode('utf-8')
2.生成数据表
①激活模型:打开test01应用下的settings.py文件,将booktest应用加入到installed_apps中。
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'booktest',
)
②生成迁移文件:根据模型类生成sql语句。
(h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py makemigrations
③执行迁移:执行sql语句生成数据表。
(h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py migrate
扩展:管理站点——给数据表添加数据
①创建管理员
(h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py createsuperuser
按回车后根据提示提示输入用户名、邮箱、密码
②向admin注册booktest的模型:打开booktest/admin.py文件,注册模型
from django.contrib import admin
from models import *
class HeroInfoInline(admin.TabularInline):
model = HeroInfo
extra = 2
class BookInfoAdmin(admin.ModelAdmin):
list_display = ['id','btitle','bpub_date']
list_filter = ['btitle']
search_fields = ['btitle']
list_per_page = 10
fieldsets = [
('basic',{'fields': ['btitle']}),
('more',{'fields': ['bpub_date']}),
]
inlines = [HeroInfoInline]
admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(HeroInfo)
③开启服务器
(h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py runserver
④访问后台
浏览器地址栏输入:127.0.0.1:8000/admin,输入上面创建的用户名、密码完成登录。
②view层
1.定义视图
打开booktest应用下的views.py文件,定义视图。
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import *
from .models import *
def index(request):
bookList = BookInfo.objects.all()
context = {"list":bookList}
return render(request,'booktest/index.html',context)
def show(request,id):
book = BookInfo.objects.get(pk=id)
herolist = book.heroinfo_set.all()
context = {'list':herolist}
return render(request,'booktest/show.html',context)
2.配置urlconf
①主urlconf,在test1/urls.py插入booktest,使主urlconf连接到booktest.urls模块
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^',include('booktest.urls'))
]
②副urlconf,在booktest应用中添加一个urls.py文件,并配置相应的url。
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$',views.index),
url(r'^(d+)$',views.show)
]
③template层
1.创建模板目录
在test01项目目录下新建一个templates目录,再在该目录下新建一个与应用(booktest)同名的文件夹,在该文件夹下新建所需的页面文件
2.修改settings.py文件,设置TEMPLATES的DIRS值
'DIRS': [os.path.join(BASE_DIR, 'templates')],
3.在模板中访问视图传递的数据
{{输出值,可以是变量,也可以是对象.属性}}
{%执行代码段%}