django开发之框架搭建
搭建虚拟环境
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.在模板中访问视图传递的数据 {{输出值,可以是变量,也可以是对象.属性}} {%执行代码段%}