Django框架

Django的介绍

Django,发音为['dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计
Django的主要目的是简便、快速的开发数据库驱动的网站,它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。

特点

重量级

对比Flask框架,Django原生提供了众多的功能组件,让开发更简便快速

提供项目工程管理的自动化脚本工具

数据库ORM支持(对象关系映射,英语:Object Relational Mapping)

模板

表单

Admin管理站点

文件管理

认证权限

session机制

缓存

MVT模式

有一种程序设计模式叫MVC,其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。

MVC:

MVC的全拼为Model-View-Controller,是一种一种软件设计模式,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。

MVC模式说明
在这里插入图片描述

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

Django的MVT
在这里插入图片描述

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

注:差异就在于黑线黑箭头标识出来的部分

虚拟环境

1)为什么要搭建虚拟环境?

在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装

比如:联网安装Django框架django的1.11.11版本

sudo pip3 install django==1.11.11

2)如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.

解决方案:虚拟环境
作用:虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.
所有的虚拟环境都位于/home/下的隐藏目录.virtualenvs下

3)如何搭建虚拟环境?

安装虚拟环境的命令 :

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:

# 1、创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs

# 2、打开~/.bashrc文件,并添加如下:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

# 3、运行
source ~/.bashrc

4)创建虚拟环境的命令

提示:如果不指定python版本,默认安装的是python2的虚拟环境

在python2中,创建虚拟环境

mkvirtualenv 虚拟环境名称
例 :
mkvirtualenv py_django

在python3中,创建虚拟环境

mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 py3_django

5)如何使用虚拟环境?

查看虚拟环境的命令 :   workon
使用虚拟环境的命令 :    workon 虚拟环境名称
退出虚拟环境的命令 :    deactivate
删除虚拟环境的命令 :   rmvirtualenv 虚拟环境名称

例 :删除虚拟环境py3_django
先退出:deactivate
再删除:rmvirtualenv py3_django


查看虚拟环境中安装的包 :   pip3 list

创建工程

在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。

在django中,项目工程目录可以借助django提供的命令帮助我们创建

1.创建

创建工程的命令为:django-admin startproject 工程名称

例如:想要在桌面的code目录中创建一个名为bookmanager的项目工程,可执行如下命令:

cd ~/Desktop/Code
django-admin startproject test
执行后,会多出一个新目录名为test,此即为新创建的工程目录。

2.工程目录说明

与项目同名的目录,此处为test

	settings.py是项目的整体配置文件
	urls.py是项目的URL配置文件
	wsgi.py是项目与WSGI兼容的Web服务器入口
	manage.py是项目管理文件,通过它管理项目

3.运行开发服务器

运行服务器命令如下:
	
	python manage.py runserver ip:端口
	或:
	python manage.py runserver
可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000


在浏览器中输入网址“127.0.0.1:8000”便可看到效果。

在这里插入图片描述
django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。
按ctrl+c停止服务器。

创建子应用

在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。

在Flask框架中也有类似子功能应用模块的概念,即蓝图Blueprint

Django的视图编写是放在子应用中的。

1.创建子应用在django中,创建子应用模块目录仍然可以通过命令来操作,即:

python3 manage.py startapp 子应用名称


manage.py为上述创建工程时自动生成的管理文件。

例如,在刚才创建的test工程中,想要创建一个用户a子应用模块,可执行:

python3 manage.py startapp a
执行后,可以看到工程目录中多出了一个名为a的子目录。

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

 创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。

 在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应	用,初始工程中的INSTALLED_APPS如下:

在这里插入图片描述
像图中那样添加子应用 每创建一个应用 就要注册一次

4.设置PyCharm的环境
在这里插入图片描述
首先找到pycharm的设置选项:

1.打开pycharm的配置
2.选择Project Interpreter
3.选中②下拉框,选择要使用的环境	

在这里插入图片描述

模型类

使用Django进行数据库开发的提示 :

MVT设计模式中的Model, 专门负责和数据库交互,对应(models.py)
由于Model中内嵌了ORM框架, 所以不需要直接面向数据库编程,而是定义模型类, 通过模型类和对象完成数据库表的增删改查.
ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象.

使用Django进行数据库开发的步骤 :

定义模型类
模型迁移
操作数据库

1.定义模型类

不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长

根据数据库表的设计

在models.py中定义模型类,继承自models.Model

demo:

from django.db import models


# 准备书籍列表信息的模型类
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.模型迁移 (建表)

迁移由两步完成 :

1)生成迁移文件:根据模型类生成创建表的语句
python3 manage.py makemigrations

2)执行迁移:根据第一步生成的语句在数据库中创建表
python3 manage.py migrate

提示:默认采用sqlite3数据库来存储数据

站点管理

站点: 分为内容发布和公共访问两部分
内容发布:由网站的管理员负责查看、添加、修改、删除数据
Django能够根据定义的模型类自动地生成管理模块
使用Django的管理模块, 需要按照如下步骤操作 :

1.管理界面本地化

2.创建管理员

3.注册模型类

4.发布内容到数据库

#1.管理界面本地	

1.管理界面本地化

本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化.

中国大陆地区使用简体中文, 时区使用亚洲/上海时区, 注意这里不使用北京时区.

本地化前
在这里插入图片描述
本地化后
在这里插入图片描述

2.创建管理员

创建管理员的命令	
python manage.py createsuperuser
重置密码
python manager.py changepassword 用户名			

3.注册模型类
在应用的admin.py文件中注册模型类
在这里插入图片描述
注册模型后
在这里插入图片描述
注册模型成功后, 就可以在站点管理界面方便快速的管理数据

4.发布内容到数据库

视图和URL

对于Django的设计框架MVT.

用户在URL中请求的是视图.

视图接收请求后进行处理.

并将处理的结果返回给请求者.

使用视图时需要进行两步操作

1.定义视图

2.配置URLconf

1.定义视图

视图就是一个可以被调用的对象,可以是Python中的函数或者是对象

视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息.
视图必须返回HttpResponse对象,包含返回给请求者的响应信息.

需要导入HttpResponse模块 :from django.http import HttpResponse

demo:
在这里插入图片描述

2.配置URLconf

django查找视图的过程

1.请求者在浏览器地址栏中输入URL, 请求到网站.

2.网站获取URL信息.

3.然后与编写好的URLconf逐条匹配.

4.如果匹配成功则调用对应的视图.

5.如果所有的URLconf都没有匹配成功.则返回404错误.

在这里插入图片描述
URLconf入口
在这里插入图片描述
两步完成URLconf配置

1.在项目中定义URLconf

2.在应用中定义URLconf

在项目中定义URLconf
在这里插入图片描述
在应用中定义URLconf

提示:一条URLconf包括URL规则、视图两部分

URL规则:使用正则表达式定义.

视图:就是在views.py中定义的视图函数.

在这里插入图片描述
在这里插入图片描述
4. 总结
视图处理过程如下图:
在这里插入图片描述

使用视图时需要进行两步操作,两步操作不分先后

配置URLconf
在应用/views.py中定义视图

模板

漂亮的页面需要html、css、js.

可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端,但是这样做会有问题 :

1.视图部分
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值