【Django篇】--创建第一个Django项目

目录

1、初识Django框架

1.1、Django框架介绍:

1.2、Django设计理念:

1.3、Django具体特点:

2、Django项目创建方式

2.1、命令行创建

2.2、Pycharm创建

[3、 基础储备知识:](#3、 基础储备知识:)

3.1、B/S架构

3.2、C/S架构

3.3、MVC设计模式

3.4、MVT设计模式


1、初识Django框架

1.1、Django框架介绍:

Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它最初由Adrian Holovaty和Simon Willison为《华盛顿邮报》的网站开发而创建,并在2005年7月发布。Django遵循MVC设计模式,提供了一个强大的ORM系统、自动URL路由、中间件支持、表单处理、自带的管理后台等功能,以帮助开发者高效构建网站和Web应用。自2008年成为开源项目以来,Django因其"开箱即用"的特性和强大的功能集而受到开发者社区的广泛支持和使用。

1.2、Django设计理念:

  1. "不要重复自己"(DRY):Django鼓励开发者避免重复代码,通过重用和抽象来提高代码的可维护性。
  2. "可维护性比编写速度更重要":Django的设计注重长期维护,而不是仅仅关注快速开发。
  3. "可扩展性":Django旨在能够支持从小项目到大型项目的发展,无需更换框架。
  4. "松散耦合":Django的应用组件之间应该是松散耦合的,这样可以更容易地替换或修改各个部分。

1.3、Django具体特点:

  1. MTV架构:Django遵循模型(Model)、模板(Template)、视图(View)的架构模式,这有助于清晰地组织代码。

    • 模型(Model):负责数据存储和检索。
    • 视图(View):接收用户的输入并调用模型和模板来产生响应。
    • 模板(Template):用于生成HTML内容,可以包含动态数据。
  2. 自动管理数据库:Django提供了一个强大的ORM(对象关系映射)系统,允许开发者用Python代码操作数据库,而不需要写SQL语句。

  3. 自动管理URL分发:Django通过URLconf(URL配置)自动处理URL到视图的映射。

  4. 中间件支持:Django支持中间件,允许跨请求处理数据,例如认证、会话管理等。

  5. 表单处理:Django提供了一个强大的表单系统,可以自动创建HTML表单,并处理表单提交。

  6. 管理后台:Django自带一个功能完备的管理后台,可以用于内容管理,无需额外开发。

  7. 安全性:Django提供了多种安全措施,如CSRF保护、XSS防御、SQL注入防护等。

  8. 国际化和本地化:Django支持多语言网站开发,可以轻松实现国际化和本地化。

  9. 缓存框架:Django内置了缓存框架,支持多种缓存方式,如内存缓存、数据库缓存、文件缓存等。

  10. 测试框架:Django提供了一个强大的测试框架,鼓励开发者编写可测试的代码。

  11. REST框架支持:Django REST framework是一个强大的、灵活的工具包,用于构建Web API。

  12. 可扩展性:Django允许开发者通过第三方应用和库来扩展其功能。

2、Django项目创建方式

2.1、命令行创建

创建并激活虚拟环境:

bash 复制代码
# 创建虚拟环境
conda create -n django-env python=3.12 django
# 激活虚拟环境
conda activate django-env
# 安装django
pip install django
# 查看django安装信息
pip show django

在指定目录文Django项目 :

bash 复制代码
# 创建django项目
djangi-admin startproject 【项目名称】

Django项目:

bash 复制代码
# 运行django项目命令
python manage.py runserver

具体示例演示:

2.2、Pycharm创建

具体操作流程如下:

3、 基础储备知识:

3.1、B/S架构

B/S架构(Browser/Server,浏览器/服务器架构)是一种网络应用模型,它将用户界面和应用逻辑分布在客户端(浏览器)和服务器端。这种架构模式的主要特点如下:

1. 客户端(Browser):

  • 用户通过浏览器访问互联网上的资源。

  • 浏览器作为客户端,负责展示用户界面和用户交互。

  • 客户端通常不需要安装复杂的软件,只需要一个支持Web标准的浏览器。

2. 服务器端(Server):

  • 服务器负责处理业务逻辑、数据存储和检索。

  • 它接收来自客户端的请求,执行相应的处理,并将结果返回给客户端。

  • 服务器可以是Web服务器、应用服务器或数据库服务器。

B/S架构的主要优点包括:

  • 易于维护和升级:由于应用逻辑主要在服务器端实现,客户端只需要浏览器,因此对应用的维护和升级主要在服务器端进行,用户无需关心。

  • 跨平台性:用户可以在任何安装了浏览器的设备上访问应用,不受操作系统限制。

  • 集中式数据管理:数据存储在服务器端,便于集中管理和保护。

  • 成本效益:对于用户来说,不需要在本地安装和维护复杂的软件,降低了成本。

B/S架构广泛应用于现代Web应用中,如在线购物、电子邮件、在线办公等,它使得用户可以随时随地通过网络访问服务。

3.2、C/S架构

C/S架构(Client/Server,客户端/服务器架构)是一种网络架构模型,它将应用分为两部分:客户端(Client)和服务器端(Server)。

1. 客户端(Client):

  • 客户端是用户直接交互的软件,用于发起请求和显示结果。

  • 它可以是桌面应用程序、移动应用或者任何其他类型的前端界面。

  • 客户端通常负责处理用户输入、显示输出结果和执行一些本地计算。

2. 服务器端(Server):

  • 服务器是提供资源、数据和处理能力的后端系统。

  • 它负责处理客户端请求,执行业务逻辑、数据存储和检索等操作。

  • 服务器可以是数据库服务器、文件服务器、应用服务器等。

C/S架构的特点包括:

-分离性:客户端和服务器端的功能明确分离,使得各自的开发和维护可以独立进行。

  • 可扩展性:服务器可以根据需求进行扩展,以处理更多的客户端请求。

  • 安全性:由于数据和业务逻辑主要在服务器端处理,可以集中管理和加强安全措施。

  • 响应性:客户端可以提供快速的响应和丰富的用户界面。

C/S架构适用于需要强大后端处理能力的应用,如企业资源规划(ERP)系统、客户关系管理(CRM)系统等。这种架构允许集中管理数据和业务逻辑,同时提供定制化的客户端界面以满足不同用户的需求。

3.3、MVC设计模式

MVC(Model-View-Controller,模型-视图-控制器)是一种软件设计模式,用于实现用户界面的分离,它将应用程序分为三个核心组件:

  1. 模型(Model)

    • 负责数据和业务逻辑。它直接与数据库交互,处理数据的存储、检索和更新等操作。
    • 模型通常包含数据的验证和任何必要的业务规则。
  2. 视图(View)

    • 负责展示数据(即模型)给用户。它是用户界面的一部分,通常包含HTML、CSS和JavaScript等。
    • 视图从模型接收数据,并将其格式化为用户可以交互的界面。
  3. 控制器(Controller)

    • 负责业务逻辑和用户界面之间的交互。它接收用户的输入,调用模型和视图去完成特定的功能。
    • 控制器处理用户请求,决定调用哪个模型处理数据,然后选择一个视图来显示返回的数据。

MVC模式的主要优点是提高了应用程序的可维护性和可扩展性,因为它允许开发者独立地更改应用程序的各个部分而不影响其他部分。这种分离也使得团队成员可以并行工作:设计师可以专注于视图,开发人员可以处理模型和控制器,而业务分析师可以定义业务逻辑。

3.4、MVT设计模式

MVT(Model-View-Template,模型-视图-模板)是一种Web应用程序的设计模式,它类似于经典的MVC(Model-View-Controller)模式,但在Web开发领域中进行了一些调整。MVT模式将应用程序分为三个主要组件:

  1. 模型(Model)

    • 与MVC中的模型相同,负责业务逻辑和数据操作。它直接与数据库交互,处理数据的存储、检索和更新等操作。
  2. 视图(View)

    • 也与MVC中的视图类似,视图负责渲染数据并生成用户界面。在Web应用中,视图通常是一个脚本或程序,它使用模板来动态生成HTML内容。
  3. 模板(Template)

    • 这是MVT与MVC的主要区别。在MVT中,模板取代了控制器(Controller)的角色。模板是一个预定义的HTML框架,它包含了用于插入动态内容的占位符。视图脚本使用模板来插入模型提供的数据,生成最终的HTML页面。

MVT模式的优点在于它简化了Web开发中的用户界面生成过程,使得开发者可以专注于业务逻辑(模型)和界面设计(模板),而不需要处理复杂的HTML生成代码。这种模式有助于保持代码的清晰和模块化,使得维护和扩展变得更加容易。Django框架就是采用MVT模式的一个例子。

相关推荐
Archy_Wang_113 分钟前
ASP.NET Core 中的 JWT 鉴权实现
后端·ui·asp.net
Archy_Wang_118 分钟前
ASP.NET Core中 JWT 实现无感刷新Token
后端·asp.net
chengxuyuan6666623 分钟前
python基础语句整理
java·windows·python
m0_7482309433 分钟前
SpringBoot实战(三十二)集成 ofdrw,实现 PDF 和 OFD 的转换、SM2 签署OFD
spring boot·后端·pdf
好像是个likun44 分钟前
spring Ioc 容器的简介和Bean之间的关系
java·后端·spring
清弦墨客1 小时前
【蓝桥杯】43691.拉马车
python·蓝桥杯·程序算法
计算机-秋大田1 小时前
基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)
java·后端·微信小程序·小程序·课程设计
C++小厨神2 小时前
MATLAB语言的编程范式
开发语言·后端·golang
我想学LINUX2 小时前
【2024年华为OD机试】(C/D卷,200分)- 5G网络建设 (JavaScript&Java & Python&C/C++)
java·c语言·javascript·网络·python·5g·华为od