Django框架分享

什么是Django

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

Django的优点

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

Django的缺点

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

Django的MTV架构

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


    在这里插入图片描述

环境搭建

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提供了自动测试功能
  • 在这里编写测试脚本
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容

  • 1.有人说 今天写着写着代码用到了unset所以想整理一下. 有的人说PHP的unset并不真正释放内存, 有的说...
    会长__阅读 1,007评论 0 5
  • 12+12融合创策纪实摄影主题训练营~贵州师大美院16课程《专题纪实摄影》12分钟纪实作业。 题目:我的晚餐 作者...
    冉冉孤生竹_371e阅读 336评论 0 0
  • 人活着本身就不容易,累了就应该休息,但就连休息本身都并非易事。我常常对自己说:“累,就对了,爽是留给死人的!”但持...
    夜猫小七阅读 393评论 2 4
  • 夜晚,寂静无声 。人们都进入了梦乡,小花静静地盛开着度过属于自己的夜生活。没有叽叽喳喳的鸟儿,没有忙碌的蝴蝶蜜...
    纪邶阅读 195评论 0 1