当前位置:   article > 正文

开源的Python Web应用程序框架--Django_django开源项目

django开源项目

一,什么是Django

在网络应用类开发中,开发人员需要重复做一些工作,如功能请求与路由映射、页面访问等方面的工作。
如我们在基于B/S的网络应用中需要从客户端提交的请求数据格式中提取文件路径以便给与客户端不同的响应(每次请求都需要重复做该工作如图1)
在这里插入图片描述
图1

Django提供了一套用于快速开发安全、可扩展和高效的Web应用程序的功能工具。Django遵循了MVC(Model-View-Controller)的软件设计模式思维图2-1,但它在实际实现中采用MTV(Model-Template-View)的架构如图2-2。
在这里插入图片描述
图2-1
在这里插入图片描述
图2-2
MTV架构和MVC架构是用于组织和设计软件应用程序的两种常见架构模式。它们在概念上有些相似,但存在一些关键区别:

MVC架构(Model-View-Controller):

  • 模型(Model):负责管理应用程序的数据和业务逻辑。它表示应用程序的状态和行为,并与数据库进行交互
  • 视图(View):负责显示用户界面和呈现数据给用户。它从模型中获取数据,并将其呈现给用户,负责与前段页面交互
  • 控制器(Controller):负责处理用户的输入和请求,并根据输入更新模型和视图。它接收用户的操作,协调模型和视图之间的交互

MVC架构的核心思想是分离应用程序的数据、表示(处理函数)和用户交互。模型负责数据和业务逻辑,视图负责用户界面,控制器负责处理用户输入和更新模型/视图。

MTV架构(Model-Template-View):

  • 模型(Model):类似于MVC架构中的模型,负责管理应用程序的数据和业务逻辑。
  • 模板(Template):负责定义应用程序的用户界面,包含了展示数据的HTML或其他模板语言。
  • 视图(View):类似于MVC架构中的视图,负责处理用户的请求,并根据请求从模型中获取数据,并将其传递给模板进行呈现。

MTV架构在概念上与MVC架构相似,但在实际实现上有一些区别。主要区别在于视图的角色,MVC架构中的视图负责用户交互和控制逻辑,而MTV架构中的视图主要负责处理请求并与模型和模板进行交互。

总体而言,MVC和MTV都旨在分离应用程序的不同组成部分,以提高代码的可维护性和可拓展性。具体使用哪种架构取决于开发者的偏好和应用程序的需求。
Django是一个开源的Python Web应用程序框架(项目半成品如图3)
在这里插入图片描述 图3

二, Django的特点以及功能组件

Django的主要目的是简介、快速的开发数据库驱动的网站——动态网站。
Django强调代码复用,多个组件可以方便以“插件”形式服务于整个框架。
Django强调快速开发。
基于MVC(更确切的说的MTV)

Django框架的主要目标是简化Web应用程序的开发过程,通过提供一些常见功能的内置支持,使开发人员可以专注于应用程序的逻辑和业务需求。一些主要的功能和组件包括:

  1. ORM(对象关系映射):Django的ORM允许开发人员使用Python代码来定义和操作数据库模型,而无需直接编写SQL语句。ORM提供了数据访问和持久化的抽象层,支持多种数据库后端。

  2. URL路由和视图:Django提供了强大的URL路由系统,可以将请求映射到相应的视图函数或类。视图负责处理请求并返回响应,可以渲染模板、执行业务逻辑等。

  3. 模板系统:Django的模板系统允许开发人员将动态数据和静态模板进行分离,以实现页面的灵活渲染。模板可以包含动态的变量、条件判断、循环等。

  4. 表单处理:Django提供了方便的表单处理功能,包括表单验证、数据绑定、错误处理等。它简化了用户输入的处理和验证过程。

  5. 认证和授权:Django提供了用户认证和授权的功能,包括用户注册、登录、会话管理等。它还提供了细粒度的权限控制,以保护应用程序的安全性。

  6. 管理后台:Django自带了一个管理后台,可以自动生成用于管理数据库模型的界面。

三,第一个Django应用

要创建一个Django项目,方法一(命令行方式):

  1. 安装 Django:首先,确保系统中已经安装了 Python。然后使用 Python 包管理工具(如 pip)安装 Django。在命令行中运行以下命令:

    pip install django # 注意版本与python环境的匹配
    ```
    
    • 1
    • 2

在这里插入图片描述
图4
也可以在pycharm中添加模块的方式进行安装Django

  1. 创建项目:在命令行中,进入创建项目的目录,并运行以下命令来创建一个新的 Django 项目:

    django-admin startproject projectname   
    ```
    
    将 "projectname" 替换为想要创建的项目名称。这将在当前目录下创建一个新的 Django 项目的文件夹。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
  2. 进入项目目录:运行以下命令进入新创建的项目目录:

    cd projectname
    ```
    
    
    • 1
    • 2
    • 3
  3. 启动开发服务器:运行以下命令来启动 Django 的开发服务器:

    python manage.py runserver
    ```
    
    默认情况下,服务器会在本地 8000 端口上运行。也可以在浏览器中访问 `http://localhost:8000/` 来查看 Django 项目的欢迎页面。
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

建Django项目,方法二(PyCharm中):
在PyCharm中创建Django项目非常简单。下面是创建Django项目的步骤:

  1. 打开PyCharm,并选择 “Create New Project”(创建新项目图5)。

  2. 在打开的窗口中,选择左侧的 “Django”,图6。

  3. 在右侧的窗口中,输入项目的名称和路径图7。

  4. 在 “Interpreter”(解释器)下拉菜单中,选择您要在项目中使用的Python解释器。如果没有合适的解释器,可以选择 “New Environment”(新环境)来创建一个新的虚拟环境。

  5. 点击 “Create”(创建)按钮来创建项目。

PyCharm将自动创建Django项目的基本结构,并在项目窗口中显示项目文件和目录。
在这里插入图片描述
图5
在这里插入图片描述
图6
在这里插入图片描述
图7

请注意,如果之前没有安装Django,PyCharm会自动安装选择的Django版本。安装过程可能需要一些时间,具体取决网络连接和系统性能。

四,项目文件展示和测试

1 在项目下生成一个项目名对应的目录,也就是这个Django项目的根目录(BASE_DIR)。它包含了一系列自动生成的目录和文件,具备各自专有的用途。如项目名为d2。则如图8
在这里插入图片描述图8-1
在这里插入图片描述图8-2
在这里插入图片描述

外层的d2目录与Django无关,只是你创建的项目的容器。
manage.py:一个命令行工具,用于与Django进行不同方式的交互脚本,非常重要!
内层的d2/目录是真正的项目文件包裹目录(图8-2 中的②,它的名字是你引用内部文件的包名,例如:d2.urls。
d2/init.py:一个定义包的空文件。
d2/settings.py:项目的主配置文件,非常重要!
d2/urls.py:路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的内容表格,非常重要!
d2/wsgi.py:一个基于WSGI的web服务器进入点,提供底层的网络通信功能。

2 启动web服务
进入d2项目的根目录,运行如下命令( 退出在同样命令下用ctrl+c):
python3 manage.py runserver

或是在PyCharm项目终端启用输入 python3 manage.py runserver

在这里插入图片描述

在启动成功是会出现对应的链接地址:如图9
在这里插入图片描述
图9-1
如果启动时出现错误:如图9-2
在这里插入图片描述 图 9-2 启动错误
这个错误的原因是PyCharm在创建项目时自动创建了一个存放模块的文件夹(后面的开发可能会存放模板,也可以自己另行创建一个存放模板的路径),存放在项目根目录下(如图8-2中的③),PyCharm在读取默认的参数有bug。我们可以通过以下两种方式更改,在找到项目对应的settings.py文件,打开该settings.py 找到(第57行左右)
一:直接把该参数置空图9-3
二:重新规范书写该参数图9-4(前提一定要在settings.py文件头部位 import os)

在这里插入图片描述图9-3 把参数置空

在这里插入图片描述图9-4 规范书写该模块文件书写参数

3 测试
打开浏览器,访问http://127.0.0.1:8000/,你将看到Django的欢迎界面,一切OK!
在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号