Django学习笔记2-Django入门

Django学习资料:
官方网站
Github源码
1.11版英文文档
1.11版中文文档
Django Book 教程
Tange With Django 教程

1、web应用框架的处理流程

  • 接收并解析HTTP请求,获取具体的请求信息
  • 处理本次HTTP请求,即完成本次请求的业务逻辑处理
  • 构造并返回处理结果——HTTP响应

Django学习笔记2-Django入门_第1张图片

2、Django框架介绍

(1)重量级框架:Django原生提供了众多的功能组件,让开发更简便快速。

提供项目工程管理的自动化脚本工具
数据库ORM支持(对象关系映射,英语:Object Relational Mapping)
模板
表单
Admin管理站点
文件管理
认证权限
session机制
缓存(redis)

(2)MVT模式
1)MVC: 核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。

M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
V全拼为View,用于封装结果,生成页面展示的html内容。
C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。

MVC模式图
Django学习笔记2-Django入门_第2张图片
2)Django的MVT模式

M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

MVT模式图
Django学习笔记2-Django入门_第3张图片

3、虚拟环境

为什么要搭建虚拟环境? 在开发过程中, 需要使用python的某些工具包/框架时,比如Django框架django的1.11.11版本,我们安装了该版本(sudo pip install django==1.11.11),但是存在一个问题,当我们使用这个命令,会将Django安装到/usr/local/lib/python2.7/dist-packages路径下,但是如果我们在同一个电脑开发不同的项目需要用到不同版本的Django,这时我们安装一个新版本会覆盖掉原来的版本,从而导致了其他项目不能用。
解决方案: 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.
注:所有的虚拟环境都位于/home/下的隐藏目录.virtualenvs下

(1)搭建虚拟环境

  • 安装虚拟环境的命令 :
	sudo pip install virtualenv
	sudo pip install virtualenvwrapper
  • 创建目录用来存放虚拟环境:在home目录创建.virtualenvs目录
  • 打开~/.bashrc文件(gedit ~/.bashrc),并添加如下:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Django学习笔记2-Django入门_第4张图片

  • 运行生效:source ~/.bashrc
  • 创建虚拟环境的命令 :
    提示:如果不指定python版本,默认安装的是python2的虚拟环境

在python2中,创建虚拟环境

	mkvirtualenv 虚拟环境名称

例 :mkvirtualenv py_django
Django学习笔记2-Django入门_第5张图片
在python3中,创建虚拟环境

	mkvirtualenv -p python3 虚拟环境名称

例 :mkvirtualenv -p python3 py3_django
Django学习笔记2-Django入门_第6张图片

说明:

  • 创建虚拟环境需要联网
  • 创建成功后, 会自动工作在这个虚拟环境上
  • 工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”

(2)使用虚拟环境

  • 查看虚拟环境的命令 :workon
    Django学习笔记2-Django入门_第7张图片
  • 使用虚拟环境的命令 : workon 虚拟环境名称
  • 退出虚拟环境的命令 : deactivate
  • 删除虚拟环境的命令 : rmvirtualenv 虚拟环境名称(先退出再删除,不能删除正在使用的虚拟环境)

(3)在虚拟环境中安装工具包

提示 :

  • 文档
  • 工具包安装的位置 :
    python2版本下:~/.virtualenvs/py_flask/lib/python2.7/site-packages/
    python3版本下:~/.virtualenvs/py3_flask/lib/python3.5/site-packages
  • python3版本下安装django-1.11.11的包 : pip install 包名称
    Django学习笔记2-Django入门_第8张图片
  • 查看虚拟环境中安装的包 : pip list
    Django学习笔记2-Django入门_第9张图片

4、创建Django项目

(1)创建工程
1)进入虚拟环境,移动到项目保存位置
2)创建工程
- 创建工程命令: django-admin startproject 工程名称
- 工程目录说明:
Django学习笔记2-Django入门_第10张图片
- 运行开发服务器(仅在开发阶段使用)

python manage.py runserver ip:端口 
或 
#不写IP和端口,默认IP是127.0.0.1,默认端口为8000
python manage.py runserver

(2)创建子应用
- 创建子应用命令: python manage.py startapp 子应用名称
- 工程目录说明:
Django学习笔记2-Django入门_第11张图片

admin.py文件跟网站的后台管理站点配置相关。
apps.py文件用于配置当前子应用的相关信息。
migrations目录用于存放数据库迁移历史文件。
models.py文件用户保存数据库模型类。
tests.py文件用于开发测试用例,编写单元测试。
views.py文件用于编写Web应用视图。

- 在Pycharm打开工程注册安装子应用:django工程并不能立即直接使用该子应用,需要注册安装后才能使用。
在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。
例如,将刚创建的book、login、pay子应用添加到工程中,可在INSTALLED_APPS列表中添加’book.apps.BookConfig’。
Django学习笔记2-Django入门_第12张图片
- 设置Pycharm环境

为什么要设置Pycharm环境:找不到Django模块
Django学习笔记2-Django入门_第13张图片

找到pycharm的设置选项:
Django学习笔记2-Django入门_第14张图片

一路点几个确定之后问题解决
Django学习笔记2-Django入门_第15张图片

5、模型(使用Django进行数据库开发)

Django进行数据库开发的提示 : MVT设计模式中的Model, 专门负责和数据库交互.对应(models.py)
由于Model中内嵌了ORM框架, 所以不需要直接面向数据库编程. 而是定义模型类, 通过模型类和对象完成数据库表的增删改查.
ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象.
Django学习笔记2-Django入门_第16张图片
Django学习笔记2-Django入门_第17张图片

(1)定义模型类:在models.py中定义模型类,继承自models.Model

from django.db import models

# Create your models here.
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
    # 创建字段,字段类型...
    name = models.CharField(max_length=10)

# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
    name = models.CharField(max_length=10)
    gender = models.BooleanField()
    # 外键约束:人物属于哪本书
    book = models.ForeignKey(BookInfo)

(2)模型迁移(建表)
生成迁移文件:根据模型类生成创建表的语句 python manage.py makemigrations
在这里插入图片描述

迁移前:
Django学习笔记2-Django入门_第18张图片
迁移后:
Django学习笔记2-Django入门_第19张图片
执行迁移:根据第一步生成的语句在数据库中创建表 python manage.py migrate
Django学习笔记2-Django入门_第20张图片
默认采用sqlite3数据库来存储数据
Django学习笔记2-Django入门_第21张图片
Django学习笔记2-Django入门_第22张图片

(3)数据库操作

6、站点管理(通过超级管理员的方式):管理页面

(1)设置时区和语言(在setting文件)

# 语言
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-Hans'
# 时区
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

(2)设置超级管理员登录和密码: python manage.py createsuperuser

在这里插入图片描述
(3)运行然后浏览器进入超级管理员界面: http://127.0.0.1:8000/admin
Django学习笔记2-Django入门_第23张图片
(4)登录进去后导入表:在子应用的admin文件

from django.contrib import admin
from book.models import BookInfo,peopleInfo
# Register your models here.
# admin.site.register(模型类)
admin.site.register(BookInfo)
admin.site.register(peopleInfo)

(5)可以添加数据到表中
Django学习笔记2-Django入门_第24张图片

7、视图VIEW和路由URL:公共访问页面

View和URL匹配流程 :
Django学习笔记2-Django入门_第25张图片

(1)定义视图(在应用的view.py文件)

  • 视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息.
  • 视图必须返回HttpResponse对象,包含返回给请求者的响应信息.
  • 需要导入HttpResponse、HttpRequest模块 :from django.http import HttpResponse,HttpRequest
    Django学习笔记2-Django入门_第26张图片
    (2)配置URLconf
    1)查找视图的过程:
  • 请求者在浏览器地址栏中输入URL, 请求到网站.
  • 网站获取URL信息.
  • 然后与编写好的URLconf逐条匹配.
    在这里插入图片描述
  • 如果匹配成功则调用对应的视图.
  • 如果所有的URLconf都没有匹配成功.则返回404错误.
    Django学习笔记2-Django入门_第27张图片
    Django学习笔记2-Django入门_第28张图片
    2)配置URLconf
    - 在项目中定义URLconf
    Django学习笔记2-Django入门_第29张图片
  • 在应用中定义URLconf
    Django学习笔记2-Django入门_第30张图片
    Django学习笔记2-Django入门_第31张图片

8、模板

View-Templates流程:
Django学习笔记2-Django入门_第32张图片
(1)创建模板

  • 在应用同级目录下创建模板文件夹templates. 文件夹名称固定写法.
  • 在templates文件夹下, 创建应用同名文件夹. 例, Book
  • 在应用同名文件夹下创建网页模板文件. 例 : index.html
    Django学习笔记2-Django入门_第33张图片
    (2)设置模板查找路径
    Django学习笔记2-Django入门_第34张图片(3)模板接收视图加载传入的数据
    Django学习笔记2-Django入门_第35张图片

(4)模板处理数据
Django学习笔记2-Django入门_第36张图片Django学习笔记2-Django入门_第37张图片

你可能感兴趣的:(Django学习,sql,python,django,linux)