django基础到高手知识笔记总结,50页笔记,共10大模块(第一期).md

django基础到高手知识笔记总结,50页笔记,共10大模块

django基础到高手知识笔记总结,50页笔记,共10大模块(第一期).md

完整笔记在这:

https://zhuanlan.zhihu.com/p/...

Django基础到高手完整笔记

完整笔记目录:

1

2

3

第一期笔记内容

Python Web 框架要点

1. Web应用程序处理流程

2. Web程序框架的意义

  • 用于搭建Web应用程序
  • 免去不同Web应用相同代码部分的重复编写,只需关心Web应用核心的业务逻辑实现

3. Web应用程序的本质

  • 接收并解析HTTP请求,获取具体的请求信息
  • 处理本次HTTP请求,即完成本次请求的业务逻辑处理
  • 构造并返回处理结果----HTTP响应

4. Web框架学习方法

  • 如何搭建工程程序

    • 工程的组建
    • 工程的配置
    • 路由定义
    • 视图函数定义
  • 如何获取请求数据(操作request对象)
  • 如何构造响应数据(构造response对象)
  • 框架提供的其他功能组件的使用

    • 数据库
    • 模板
    • admin

Django流程

重点

  • MVT 流程:掌握M,V,T的每个模块的功能,了解MVT的流程

  • 创 建Django项目和应用

    • django-admin startproject name
    • python manager.py startapp name
  • 视 图和ULR

    • 视图的请求和响应
    • URL的匹配路径

Django介绍

1. 简介

Django, **发
音为[`dʒaeŋɡəʊ]**,是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。
**由
于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"分类第6位,被认为是该领域的佼佼者。**

Django的 **主
要目的是简便、快速的开发数据库驱动的网站。**它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。

2. 特点

1) 重量级框架

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

  • 提供项目工程管理的自动化脚本工具
  • 数据库ORM支持(对象关系映射,英语:Object Relational Mapping)
  • 模板
  • 表单
  • Admin管理站点
  • 文件管理
  • 认证权限
  • session机制
  • 缓存

2)MVT模式

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

MVC的全拼为 Model-View-Controller
,最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox
PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java
EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,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。

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

3. Django学习资料

为什么要搭建虚拟环境?

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

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


sudo pip install django
  • 提 示:使用如上命令, 会将Django安装到/usr/local/lib/python3.8/dist-packages路径下
  • 问 题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
  • 解 决方案:虚拟环境

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

如何搭建虚拟环境?

  • 安装虚拟环境的命令 :


sudo pip install virtualenv
sudo pip install virtualenvwrapper
安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:
# 1、创建目录用来存放虚拟环境
mkdir 
$HOME/.virtualenvs

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

# 3、运行
source ~/.bashrc

  • 创建虚拟环境的命令 :

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

      mkvirtualenv 虚拟环境名称
      

      例 :
      mkvirtualenv py_django

    • 在python3中,创建虚拟环境

      mkvirtualenv -p python3 虚拟环境名称
      

      例 :
      mkvirtualenv -p python3 py3_django

  • 提示 :

    • 创建虚拟环境需要联网
    • 创建成功后, 会自动工作在这个虚拟环境上
    • 工作在虚拟环境上, 提示符最前面会出现 "虚拟环境名称"

如何使用虚拟环境?

  • 查看虚拟环境的命令 :


workon

  • 使用虚拟环境的命令 :


workon 虚拟环境名称

例 :使用py3_django的虚拟环境
workon py3_django

  • 退出虚拟环境的命令 :


deactivate

  • 删除虚拟环境的命令 :


rmvirtualenv 虚拟环境名称

例 :删除虚拟环境py3_django

先退出:deactivate
再删除:rmvirtualenv py3_django

如何在虚拟环境中安装工具包?

文档

  • 提示 : 工具包安装的位置 :

    • python2版本下:

      • ~/.virtualenvs/py_flask/lib/python2.7/site-packages/
    • python3版本下:

      • ~/.virtualenvs/py3_flask/lib/python3.5/site-packages
  • python3版本下安装django-1.11.11的包 :


pip install 包名称

例 : 安装django的包
pip install django==版本

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


pip list

本期结束语

学习是一件非常有意思的事情,世上再没有比成长更让人身心愉快的事情了。

大家可以跟着练习

让我们期待下一期吧~

完整笔记自取

完整笔记在这:

https://zhuanlan.zhihu.com/p/...

4 声望
3 粉丝
0 条评论
推荐阅读
django全知识要点笔记集合,近50页,从基础到深入理解django开发(第一期)
django全知识要点笔记集合,近50页,从基础到深入理解django开发(第一期)完整笔记在这:django全知识要点所有笔记集合获取完整笔记目录:本期笔记内容Django框架主要内容项目创建运行配置文件路由配置 (View)re...

雨未歇 ?阅读 850

python里打印list的四种方法
原文链接标题:Print lists in Python (4 Different Ways)用for循环来打印 {代码...} 结果1 2 3 4 5用 * 星号来打印 {代码...} 结果 {代码...} 把list转换为str来打印 {代码...} 结果 {代码...} 用map把数组里非...

chiiinnn阅读 10.4k

封面图
Ubuntu20.04 从源代码编译安装 python3.10
Ubuntu 22.04 Release DateUbuntu 22.04 Jammy Jellyfish is scheduled for release on April 21, 2022If you’re ready to use Ubuntu 22.04 Jammy Jellyfish, you can either upgrade your current Ubuntu syste...

ponponon1阅读 4k评论 1

日常Python 代码片段整理
1、简单的 HTTP Web 服务器 {代码...} 2、单行循环List {代码...} 3、更新字典 {代码...} 4、拆分多行字符串 {代码...} 5、跟踪列表中元素的频率 {代码...} 6、不使用 Pandas 读取 CSV 文件 {代码...} 7、将列表...

墨城2阅读 340

Unicode 正则表达式(qbit)
前言本文根据《精通正则表达式》和 Unicode Regular Expressions 整理。本文的示例默认以 Python3 为实现语言,用到 Python3 的 re 模块或 regex 库。基本的 Unicode 属性分类 {代码...} 基本的 Unicode 子属性Le...

qbit阅读 4.4k

Python + Sqlalchemy 对数据库的批量插入或更新(Upsert)
由于不同数据库对这种 upsert 的实现机制不同,Sqlalchemy 也就不再试图做一致性的封装了,而是提供了各自的方言 API,具体到 Mysql,就是给 insert statement ,增加了 on_duplicate_key_update 方法。

songofhawk1阅读 2.1k评论 4

封面图
打脸了兄弟们,Go1.20 arena 来了!
大家好,我是煎鱼。大概半年前,我写过一篇文章《Go 要违背初心吗?新提案:手动管理内存》。有兴趣了深入解的同学,可以再回顾一下。当时我们还想着 Go 团队应该不会接纳,至少不会那么快:懒得翻也可以看我再次...

煎鱼1阅读 3.3k

4 声望
3 粉丝
宣传栏