Django框架分享

什么是Django

  • Django是一个基于Python的高级web开发框架;它能让开发人员进行高效快速的开发,高度集成,免费且开源
    在这里插入图片描述

Django的优点

  • DRY,强调快速开发
  • 优雅的URL设计
  • 自带强大后台
  • 强大的数据库功能
  • 缓存系统

Django的缺点

  • 系统的耦合度太高
  • 模板语言的支持相对比较简单

Django的MTV架构

  • Model层,和MVC中的model层一样,负责应用程序的数据以及数据的处理
  • Template层,根据需求展示Model层的数据,使用Django的Template的语法
  • View层,类似于MVC的Controller,负责应用逻辑的控制


    在这里插入图片描述

环境搭建

  • Python安装:https://www.python.org/
  • Django安装:https://www.djangoproject.com/download/
  • 开发工具Pycharm安装:https://www.jetbrains.com/pycharm

Django的典型业务流程

在这里插入图片描述

创建工程

-django-admin.py startproject [proj name]

在这里插入图片描述

  • 运行开发服务器
    在myblog目录下,输入:
    python manage.py runserver
    然后在浏览器中输入:
    127.0.0.1:8000

Django项目的目录结构

在这里插入图片描述

Manage.py

  • 执行python manage.py 来查看所有的命令
  • 与项目进行交互的命令行工具集的入口项目管理器
  • 支持多个命令
    —创建数据库
    —启动服务runserver
    —等等
  • 支持扩展自定义的命令

Setting.py

  • 整个项目的核心配置文件
    —数据库的连接信息
    —缓存配置
    —Session配置
    —静态文件配置
    —用户自定义的配置信息

url.py

  • Django项目中所有地址(页面)都需要我们去配置其URL

_init.py

  • Python中声明模块的文件,内容默认为空

Wsgi.py

  • 定义:Python web server gateway interface ,Python服务器网关接口
  • Python有许多的 Web 框架,而同时又有许多的 Web 服务器(Apache, Nginx, Gunicorn等),框架和Web服务器之间需要进行通信,如果在设计时它们之间不可以相互匹配的,那么选择了一个框架就会限制对 Web 服务器的选择。
  • 为确保可以在不修改Web服务器代码或网络框架代码的前提下,使用自己选择的服务器,并且匹配多个不同的网络框架,对python来说,设计WSGI来解决。
  • WSGI,让开发者可以将 Web 框架与 Web 服务器的选择分隔开来,不再相互限制。可以将不同的 Web 服务器与Web框架进行混合搭配,选择满足自己需求的组合。


    在这里插入图片描述

Django的项目中的App

  • 一个Django项目有多个App组成

  • APP
    — 一个App对应一组URL
    — 每个App是一个独立的目录,每个目录由一个model.py,view.py和test.py,[URL.py]组成
    — model.py是应用所需要的数据定义
    — view.py是存放App应用逻辑的

  • 每个App必须被注册到settings.py的INSTALLED_APP中

  • Django自带很多App,提供了很多方便的功能
    Django.contrib.auth,用户认证
    Django.contrib.admin,后台管理应用

应用程序目录结构

  • migrations
  • init.py
  • admin.py
  • apps.py
  • models.py
  • test.py
  • view.py

URL分发和视图

  • Django内部维护了一张URL和视图的映射表,当请求到来的时候,选择匹配URL的视图函数来处理请求

编写路由

  • 路由都在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑。


    在这里插入图片描述

View.py

  • 执行响应的代码所在模块
  • 代码逻辑处理的主要地点
  • 项目中大部分代码均在这里编写

编写业务逻辑

在这里插入图片描述

Django的模板语言

  • 用两个大括号包围的表示变量
  • 用一个大括号和百分号包围的表示模板标签
    —IF判断
    —FOR循环
  • 支持自定义标签和过滤器

模板标签

  • 标签必须成对出现并且关闭
    {% IF %} … {% END IF %}
    {% FOR %} … {% END FOR %}

返回HTML文件

在这里插入图片描述

在这里插入图片描述

修改Settings文件

  • 为了让django知道html文件在哪里,需要修改settings文件的相应内容。但默认情况下,它正好适用,无需修改。


    在这里插入图片描述

静态文件

  • 我们已经可以将html文件返还给用户了,但是还不够,前端三大块,html、css、js还有各种插件,它们齐全才是一个完整的页面。在django中,一般将静态文件放在static目录中。接下来,在mysite中新建个static目录。


    在这里插入图片描述

models.py

  • 数据模块
  • 使用ORM框架

ORM

Model类

  • 每一个Model类表示一张表,生成的数据库表的名字默认是APP的名字_类的名字

  • 每个Model类里面都有多个Filed的Instance变量

Field对象

  • 一个Field变量表示一个表中的字段
  • Django支持大量的字段类型,例如 TextField, IntegerField等等

使用数据库

  • django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库。下面我们来看一看:
  • 在setting中注册APP


    在这里插入图片描述
  • 在settings配置数据库的相关参数


    在这里插入图片描述

修改model.py

  • 创建用户名和密码两个字段


    在这里插入图片描述

创建数据库的表

  • python manage.py makemigrations


    在这里插入图片描述
  • python manage.py migrate


    在这里插入图片描述

tests.py

  • 自动化测试模块
  • Django提供了自动测试功能
  • 在这里编写测试脚本

你可能感兴趣的:(Django框架分享)