Django框架

项目轮廓 — 集成高复用(重复利用)— 减少底层封装

车 --- 骨架,引擎,轮子

Django基础

学习目标

认识Django

熟悉搭建与使用虚拟环境

熟悉Django项目的结构

了解Django项目与应用的区别掌握在项目中创建与注册应用

熟悉Django架构,掌握MTV各部分的功能

一、Django框架介绍

1.何为框架

度娘上说:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;

另一种定义认为,框架是可被应用开发者定制的应用骨架
,是某种应用的半成品

使用框架开发项目的好处

  • 开发周期短
  • 维护成本低
  • 软件生产效率和质量也得到了提高

2.认识Django框架

MVC  程序设计模式

Django,发音为[`dʒæŋɡəʊ]
Django是劳伦斯出版集团的开发人员为开发新闻内容网站而设计出来的一个软件,它遵循MVC思想,但是有自己的一个名词,叫做MVT

Django是使用Python语言编写的一个开源Web应用框架,鼓励快速开发,是当前最为流行的python Web开发框架

Django框架优点:

3.Django的特点

3.1 重量级框架

重量级 --- 框架完善-- 功能, 模块丰富缺点: 很臃肿,太大了数据库设计用户表,权限管理表

对比python其他web框架,比如flask,Tornado而言,Django原生提供了众多的功能组件,让开发更简便快速。

  • 提供项目工程管理的自动化脚本工具 — 命令创建项目

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

object Relational Mapping

面向对象   类,实例对象, 属性表        表,字段,数据

对象(Python) 关系(mysql) 映射模板

  • 表单

  • Admin管理站点文件管理

  • 认证权限

  • session机制缓存

3.2 MVC模式

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


耦合: 程序间的依赖性
解耦: 降低程序间的依赖性客户 -- 商户   付钱:现金
客户 -- 商户   线上支付MVC的全拼为**Model-View-Controller**,为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多开发者欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。

3.3 MVC模式说明

M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
V全拼为View,用于封装结果,生成页面展示的html内容。

C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。

3.4 Django的MVT

设计模式:规定哪个部分做什么事
mvc --- 通用的
mvt --- Django的 (mvt基于MVC)

M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。

V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

项目启动后,用户通过浏览器向Web服务器发起请求,Web服务器将请求传递到要处理该请求的Django项目,Django接收用户通过浏览器发起的请求,urls.py文件根据URL地址分发路由,将请求交给views.py中相应的视图;视图处理请求(此时涉及数据存取),并将处理结果与模板结合生成响应数据返回给Web服务器,服务器将数据返回到浏览器,最终呈现给用户。具体如下图所示

4.Django学习资料

官方网站
Github源码
1.11版中文文档

二、安装Django

1.在物理环境安装Django

安装配置好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环境

实际生产中同一项目的不同版本可能依赖不同的环境,这时需要在系统中安装多个版本的
Python,若直接在物理环境中进行配置,多个版本的软件之间会产生干扰。为了避免这种情况,
应使用virtualenv命令创建虚拟环境,以隔离不同版本的Python

A.windows中安装虚拟Python环境

  1. 打开控制台窗口,使用pip工具可以在线安装virtualenv,具体命令如下:

    pip install virtualenv
    
  2. irtualenv安装完成后,使用命令创建虚拟环境,具体如下所示:

    virtualenv first_env
    

提示:
若要创建包含指定Python版本的虚拟环境,需使用-p选项指定该版本Python可执行文件所在的路径,完整命令格式如下:

virtualenv –p python.exe 路径 虚拟环境名
  1. 执行虚拟环境目录中Scripts下的activate文件可启用虚拟环境、deactivate文件可退出虚拟环境, 具体命令如下:

    C:\Users\admin>.\first_env\Scripts\activate
    C:\Users\admin>.\first_env\Scripts\deactivate
    
  2. 若以上命令执行成功,命令行的路径名之前会出现"(虚拟环境名)",具体如下所示

    (first_env) C:\Users\admin>
    
  3. 输入python,检验是否安装成功

任务一: 在windows 中安装 python 虚拟环境 ,名称:my_env ,目录在D:盘:

2.2虚拟环境管理工具virtualenvwrapper 安装

用户可通过虚拟环境管理工具virtualenvwrapper简化虚拟环境的创建和管理,在Windows系统中安装
该工具,具体命令如下:

pip install virtualenvwrapper-win

安装完成后,用户可分别使用以下命令创建和管理虚拟环境

任务2: 使用virtualenvwrapper工具创建python 虚拟环境first_env

2.3使用pip在虚拟环境安装Django

安装Django
pip install django==2.2.8

验证虚拟环境安装是否成功

三、Django项目搭建

学习目标

创建项目工程创建应用

了解工程目录结构定义视图与路由

1 新建Django项目

使用Django提供的命令,可以创建一个Django项目实例需要的配置项------包括数据库配置、Django配置和应用程序配置的集合。新建Django项目命令的语法格式如下:

1.1 创建项目

创建工程的命令为:

django-admin startproject 工程名称

例如:想要在D:\的pythonProject目录中创建一个名为mysite的项目工程,可执行如下命令:

workon first_env
cd d:\pythonProject
django-admin startproject mysite

执行后,会多出一个新目录名为mysite,此即为新创建的工程目录。

1.2 项目目录说明

查看创建的项目目录,结构如下

mysite : 根目录,项目的容器

manage.py:一个提供Django项目管理功能的命令行工具

**子mysite:**一个纯Python包,其中存放项目文件,在引用项目文件时会使用到这个包名。

mysite\settings.py 是项目的整体配置文件。mysite\urls.py
是项目的URL配置文件。mysite\wsgi.py
是项目与WSGI兼容的Web服务器入口。

1.3 启动项目

在开发阶段,为了能够快速预览到开发的效果,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 创建应用

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

在Django中, 把这一个个子功能模块成为应用,一个Django项目可以包含多个Django应用,每个应用可在多个项目中被重复利用

2.1 创建应用

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

python manage.py startapp 应用名称

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

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

执行后,可以看到工程目录中多出了一个名为blogs的子目录。

2.2 应用目录说明

查看此时的工程目录,结构如下:

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应用

2.3 注册应用

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

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

注册安装一个应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到

INSTALLED_APPS列表中。

例如,将刚创建的users子应用添加到工程中,可在INSTALLED_APPS列表中添加**‘users.apps.UsersConfig’**。

提示:在pycharm中 打开Django项目
找到项目的根目录,打开Django项目

设置项目的python解析器(虚拟环境)

3 创建视图、定义路由

Django的视图是定义在应用的views.py中的。

3.1 创建视图

打开刚创建的users模块,在views.py中编写视图代码。

from django.http import HttpResponse
# 127.0.0.1:8000/indexdef index(request):"""index视图:param request: 包含了请求信息的请求对象:return: 响应对象"""return HttpResponse("hello the world!")def detail(request):"""index视图,首页视图:param request: 请求对象:return: 响应对象"""return HttpResponse('详情页')

说明:

视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust
象,通常名为request

视图函数的返回值必须为一个响应对象,可将要返回的字符串数据放到一个HTTPResponse对象
中。

3.2 定义路由URL

为了保证服务器能成功找到用户请求的页面,需为应用配置路由。在应用users中创建子路由文件

urls.py,分别配置根路由和子路由,配置信息分别如下:

  1. 在应用中新建一个urls.py文件用于保存该应用的路由。

  1. 在users/urls.py文件中定义子路由信息。

    from django.urls import path
    from . import views# urlpatterns是被django自动识别的路由列表变量
    urlpatterns = [# 每个路由信息都需要使用url函数来构造# url(路径, 视图)path('index/', views.index),path('detail/', views.detail),
    ]
    
  2. 在项目工程总路由mysite/urls.py中添加users应用的路由信息。

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/。

3.3启动运行

  1. 命令方式启动django项目
python manage.py runserver

  1. pycharm中直接运行项目

  1. 运行效果

在浏览器中输入网址127.0.0.1:8000/users/index/ 可看到返回的信息

3.4在Pycharm中创建Django项目

3.4.1 创建django项目

3.4.2 在Pycharm中指定Django版本

使用pycharm创建Django项目时默认使用最新的版本

修改Django版本

当安装成功后,再打开项目解析器设置,效果如下:

3.4.3 修改settings.py文件

当在pycharm加载Django项目时,因为版本兼容问题,可能报以下错误

解决办法:

回顾MVT模型

Django的安装及第一个demo相关推荐

  1. Anaconda安装及第一个py程序

    Conda安装及第一个py程序 安装Conda 下载安装 在Anaconda官网下载Anaconda 打开Conda安装程序 设置好安装目录(这个一定要记好,后边要用),比如我的目录就是 D:\Pro ...

  2. 【Java学习】JDK安装及第一个java程序

    一直听说Java是C++的升级和优化,却一直没用过,今天来简单学习一下. JDK安装及第一个java程序 一.JDK安装 二.第一个java程序 三.系统环境变量配置 一.JDK安装 JDK(Java ...

  3. 2020车载凯立德懒人包下载_华为HarmonyOS App开发工具DevEco Studio下载安装及第一个HarmonyOS App实战教程...

    2020年9月10日,华为开发者大会发布了鸿蒙(HarmonyOS)2.0.HarmonyOS是一套全场景操作系统.从理论上讲,HarmonyOS可以在任何平台上运行(包括但不限于PC.手机.平板电脑 ...

  4. UNP学习第一步:unp.h的安装及第一个程序的运行

    UNP学习第一步:unp.h的安装及第一个程序的运行 unp.h的安装 源代码编译 静态库安装 运行第一个程序 启动daytime服务 unp.h的安装 源代码编译 在书籍网站(http://www. ...

  5. 【操作系统】HarmonyOS App开发工具HUAWEI DevEco Studio下载安装及第一个HarmonyOS App实战教程

    路标 DevEco Studio简介 DevEco Studio的下载安装 安装过程演示 开发第一个基于Java的TV App 微信公众号原文链接:点击查看 2020年9月10日,华为开发者大会发布了 ...

  6. 华为HarmonyOS App开发工具DevEco Studio下载安装及第一个HarmonyOS App实战教程

    路标 DevEco Studio简介 DevEco Studio的下载安装 安装过程演示 开发第一个基于Java的TV App 微信公众号原文链接:点击查看 2020年9月10日,华为开发者大会发布了 ...

  7. 二、window下django安装及第一个应用

    1.下载地址 https://www.djangoproject.com/download/ 2.解压下载的文件 3.安装 比如在 D:\django-1.6.8\ 这个文件夹下 cd d: cd d ...

  8. Storm 01之 Storm基本概念及第一个demo

    2.1 Storm基本概念 在运行一个Storm任务之前,需要了解一些概念: Topologies :[tə'pɑ:lədʒɪ]拓扑结构 Streams Spouts:[spaʊt]喷出; 喷射; 滔 ...

  9. AJAX教程系列一:环境安装及第一个ajax程序

    去官网下载wamp服务器,一路next即可.PS:也可下载我本人所使用版本http://pan.baidu.com/s/1slOmEYx 下载dw wamp安装成功后,在你所在磁盘目录!![其中画红框 ...

最新文章

  1. Struts框架核心技术小小班
  2. Eclipse中修改tomcat内存大小
  3. 物理专线与虚拟专线的比较
  4. 科研神器推荐之那些年你用过的工具
  5. 大学生如何找到适合自己的Java行业
  6. Zabbix 3.0 配置企业微信报警(注册---测试)
  7. 计算机等级的有关知识,计算机等级二级基础知识.doc
  8. Node.js区块链开发pdf
  9. 实验平均梯度与图像的模糊程度(matlab 代码)
  10. 音阶频率对照表_音符频率对应表
  11. Windows API一日一练 17 DialogBox和DialogBoxParam函数
  12. python 批量改文件后缀_python如何批量修改文件后缀名?批量修改文件后缀名的方法...
  13. MathType工具栏在word里无法点击
  14. BottomNavigationView--基本使用总结
  15. Centos版Linux 一些常用操作命令以及快捷键设置
  16. 100句永久珍藏的人生格言
  17. shiny改写服务器文件,Shiny生产环境部署与共享
  18. python 英文关键词提取_python TF-IDF算法实现文本关键词提取
  19. win7之 nodejs 升级
  20. 阿里:不清除35岁以上的P8员工!

热门文章

  1. 2022下半年教师资格证报名学历要求
  2. kingcms php,KINGCMS PHP 支持添加水印
  3. 50 岁开发者如何绝地求生
  4. WDM音频驱动程序概览
  5. 虚拟机防火墙关了怎么端口还是不能访问
  6. 在那山的这边海的那边有一群程序员
  7. java 内存模型JMM解析
  8. php提取域名字符串,由字符串,提取完整子域名的方法 -php
  9. 开源项目eladmin--笔记
  10. vue+cordova 实现第三方登录( QQ 微信 微博)之微信登录