项目轮廓 — 集成高复用(重复利用)— 减少底层封装
车 --- 骨架,引擎,轮子
学习目标Django基础
一、Django框架介绍 1.何为框架认识Django
熟悉搭建与使用虚拟环境
熟悉Django项目的结构
了解Django项目与应用的区别掌握在项目中创建与注册应用
熟悉Django架构,掌握MTV各部分的功能
度娘上说:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;
另一种定义认为,框架是可被应用开发者定制的应用骨架
,是某种应用的半成品
2.认识Django框架使用框架开发项目的好处
- 开发周期短
- 维护成本低
- 软件生产效率和质量也得到了提高
MVC 程序设计模式
Django框架优点: 3.Django的特点 3.1 重量级框架Django,发音为[`dʒæŋɡəʊ],
Django是劳伦斯出版集团的开发人员为开发新闻内容网站而设计出来的一个软件,它遵循MVC思想,但是有自己的一个名词,叫做MVTDjango是使用Python语言编写的一个开源Web应用框架,鼓励快速开发,是当前最为流行的python Web开发框架
重量级 --- 框架完善-- 功能, 模块丰富
缺点: 很臃肿,太大了
数据库设计
用户表,权限管理表
3.2 MVC模式对比python其他web框架,比如flask,Tornado而言,Django原生提供了众多的功能组件,让开发更简便快速。
提供项目工程管理的自动化脚本工具 — 命令创建项目
数据库ORM支持(对象关系映射,英语:Object Relational Mapping)
object Relational Mapping
面向对象 类,实例对象, 属性 表 表,字段,数据
对象(Python) 关系(mysql) 映射模板
表单
Admin管理站点文件管理
认证权限
session机制缓存
3.3 MVC模式说明有一种程序设计模式叫MVC,其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性。
耦合: 程序间的依赖性 解耦: 降低程序间的依赖性 客户 -- 商户 付钱:现金 客户 -- 商户 线上支付 MVC的全拼为**Model-View-Controller**,为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。 随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。 后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多开发者欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。
3.4 Django的MVTM全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查 *** 作。
V全拼为View,用于封装结果,生成页面展示的html内容。C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。
设计模式:规定哪个部分做什么事
mvc --- 通用的
mvt --- Django的 (mvt基于MVC)
4.Django学习资料M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。
项目启动后,用户通过浏览器向Web服务器发起请求,Web服务器将请求传递到要处理该请求的Django项目,Django接收用户通过浏览器发起的请求,urls.py文件根据URL地址分发路由,将请求交给views.py中相应的视图;视图处理请求(此时涉及数据存取),并将处理结果与模板结合生成响应数据返回给Web服务器,服务器将数据返回到浏览器,最终呈现给用户。具体如下图所示
二、安装Django 1.在物理环境安装Django官方网站
Github源码
1.11版中文文档
安装配置好python
验证 python,pip
pip介绍
Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库,所有的第三方库,甚至你自己写的开源模块,都可以发布到这里,让全世界的人分享下载
pip 是最有名的Python 包管理工具 。提供了对Python
包的查找、下载、安装、卸载的功能安装Python解析器时python,默认已经安装了pip工具pip list :查看当前安装的python包
pip install packagename :安装包
使用pip安装Django
Django对Python版本的依赖关系具体如下表所示
安装Django
pip install django==2.2.8
pip install django==2.2.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.在虚拟环境安装Django验证物理环境安装是否成功
安装好了python后,默认使用的这个环境
同一系统里面开发多个项目(每个项目配置不同): 版本冲突 # 将环境分开 --- 虚拟环境
pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install virtualenv # virtualenv虚拟环境 *** 作
pip install virtualenvwrapper-win # 虚拟环境管理包
pip install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple
# 配置环境变量 改变环境文件默认位置
2.1创建虚拟的Python环境
A.windows中安装虚拟Python环境实际生产中同一项目的不同版本可能依赖不同的环境,这时需要在系统中安装多个版本的
Python,若直接在物理环境中进行配置,多个版本的软件之间会产生干扰。为了避免这种情况,
应使用virtualenv命令创建虚拟环境,以隔离不同版本的Python
-
打开控制台窗口,使用pip工具可以在线安装virtualenv,具体命令如下:
pip install virtualenv
-
irtualenv安装完成后,使用命令创建虚拟环境,具体如下所示:
virtualenv first_env
提示:
若要创建包含指定Python版本的虚拟环境,需使用-p选项指定该版本Python可执行文件所在的路径,完整命令格式如下:virtualenv –p python.exe 路径 虚拟环境名
-
执行虚拟环境目录中Scripts下的activate文件可启用虚拟环境、deactivate文件可退出虚拟环境, 具体命令如下:
C:\Users\admin>.\first_env\Scripts\activate C:\Users\admin>.\first_env\Scripts\deactivate
-
若以上命令执行成功,命令行的路径名之前会出现"(虚拟环境名)",具体如下所示
(first_env) C:\Users\admin>
-
输入python,检验是否安装成功
2.2虚拟环境管理工具virtualenvwrapper 安装任务一: 在windows 中安装 python 虚拟环境 ,名称:my_env ,目录在D:盘:
用户可通过虚拟环境管理工具virtualenvwrapper简化虚拟环境的创建和管理,在Windows系统中安装
该工具,具体命令如下:pip install virtualenvwrapper-win
安装完成后,用户可分别使用以下命令创建和管理虚拟环境
2.3使用pip在虚拟环境安装Django任务2: 使用virtualenvwrapper工具创建python 虚拟环境first_env
安装Django
pip install django==2.2.8
三、Django项目搭建 学习目标验证虚拟环境安装是否成功
1 新建Django项目创建项目工程创建应用
了解工程目录结构定义视图与路由
1.1 创建项目使用Django提供的命令,可以创建一个Django项目实例需要的配置项------包括数据库配置、Django配置和应用程序配置的集合。新建Django项目命令的语法格式如下:
1.2 项目目录说明创建工程的命令为:
django-admin startproject 工程名称
例如:想要在D:\的pythonProject目录中创建一个名为mysite的项目工程,可执行如下命令:
workon first_env cd d:\pythonProject django-admin startproject mysite
执行后,会多出一个新目录名为mysite,此即为新创建的工程目录。
1.3 启动项目查看创建的项目目录,结构如下
mysite : 根目录,项目的容器manage.py:一个提供Django项目管理功能的命令行工具
**子mysite:**一个纯Python包,其中存放项目文件,在引用项目文件时会使用到这个包名。
mysite\settings.py 是项目的整体配置文件。mysite\urls.py
是项目的URL配置文件。mysite\wsgi.py
是项目与WSGI兼容的Web服务器入口。
在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。
运行服务器命令如下:
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停止服务器。
默认情况下开发服务器在本地IP的8000端口上启动,若要更改端口,可将端口作为命令行参数传递。例如在端口8080上启动服务器,命令如下所示:
python manage.py runserver 8080
任务三:创建Django项目 mysite
2 创建应用2.1 创建应用在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。
在Django中, 把这一个个子功能模块成为应用,一个Django项目可以包含多个Django应用,每个应用可在多个项目中被重复利用
在django中,创建应用模块目录可以通过命令来 *** 作,即:
python manage.py startapp 应用名称
manage.py 为上述创建工程时自动生成的管理文件。
例如,在刚才创建的mysite工程中,想要创建一个用户users应用模块,可执行:
2.2 应用目录说明执行后,可以看到工程目录中多出了一个名为blogs的子目录。
查看此时的工程目录,结构如下:
2.3 注册应用admin.py 文件: 跟网站的后台管理站点配置相关。
apps.py 文件:用于配置当前应用的相关信息。
migrations 目录:用于存放数据库迁移历史文件。
models.py 文件: 用户保存数据库模型类。 m : model v: view T:Template
tests.py 文件: 用于开发测试用例,编写单元测试。
views.py 文件: 编写视图函数,MVT模型中的V。
db.sqlite3 : 轻量级关系型数据库,django默认使用sqlite数据库
任务4: 在mysite项目中创建users应用
注册安装一个应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该应用,需要注册安装后才能使用。
在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中
的INSTALLED_APPS如下:
INSTALLED_APPS列表中。
例如,将刚创建的users子应用添加到工程中,可在INSTALLED_APPS列表中添加**‘users.apps.UsersConfig’**。
提示:在pycharm中 打开Django项目
找到项目的根目录,打开Django项目
3 创建视图、定义路由设置项目的python解析器(虚拟环境)
3.1 创建视图Django的视图是定义在应用的views.py中的。
3.2 定义路由URL打开刚创建的users模块,在views.py中编写视图代码。
from django.http import HttpResponse # 127.0.0.1:8000/index def index(request): """ index视图 :param request: 包含了请求信息的请求对象 :return: 响应对象 """ return HttpResponse("hello the world!") def detail(request): """ index视图,首页视图 :param request: 请求对象 :return: 响应对象 """ return HttpResponse('详情页')
说明:
视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对
象,通常名为request。视图函数的返回值必须为一个响应对象,可将要返回的字符串数据放到一个HTTPResponse对象
中。
为了保证服务器能成功找到用户请求的页面,需为应用配置路由。在应用users中创建子路由文件
urls.py,分别配置根路由和子路由,配置信息分别如下:
- 在应用中新建一个urls.py文件用于保存该应用的路由。
-
在users/urls.py文件中定义子路由信息。
from django.urls import path from . import views # urlpatterns是被django自动识别的路由列表变量 urlpatterns = [ # 每个路由信息都需要使用url函数来构造 # url(路径, 视图) path('index/', views.index), path('detail/', views.detail), ]
-
在项目工程总路由mysite/urls.py中添加users应用的路由信息。
3.3启动运行from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('users/', include('users.urls')) ]
使用include来将子应用users里的全部路由包含进项目路由中;
'users/'决定了users应用的所有路由都已/users/开头,如我们刚定义的视图index,其最终的完整访问路径为/users/index/。
- 命令方式启动django项目
python manage.py runserver
- pycharm中直接运行项目
- 运行效果
3.4在Pycharm中创建Django项目 3.4.1 创建django项目 3.4.2 在Pycharm中指定Django版本在浏览器中输入网址127.0.0.1:8000/users/index/ 可看到返回的信息
使用pycharm创建Django项目时默认使用最新的版本
修改Django版本
3.4.3 修改settings.py文件当安装成功后,再打开项目解析器设置,效果如下:
当在pycharm加载Django项目时,因为版本兼容问题,可能报以下错误
解决办法:
回顾MVT模型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)