python——Django框架

一、基本介绍

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

Django框架有以下主要特点:

  1. 强大的ORM(对象关系映射):Django提供了一个强大的ORM,它允许开发人员使用Python代码来操作数据库,而无需编写复杂的SQL语句。ORM提供了简洁的API,使数据库操作变得更加简单和高效。

  2. 自带的管理后台:Django提供了一个内置的管理后台,使开发人员可以轻松地创建、编辑和管理数据库中的数据。开发人员只需定义模型类,Django就会自动为其生成对应的管理界面。

  3. URL分发和视图处理:Django使用URL分发机制来将请求映射到相应的视图函数或类。开发人员可以根据需要定义不同的URL模式,并将它们与相应的视图函数或类关联起来。这种分发机制使开发人员能够轻松处理不同URL的请求。

  4. 模板引擎:Django内置了一个强大的模板引擎,使开发人员可以将HTML页面与Python代码进行分离。模板引擎提供了丰富的模板标签和过滤器,使开发人员能够轻松地生成动态的HTML页面。

  5. 安全性:Django提供了一系列的安全机制,包括防止跨站点请求伪造(CSRF)、防止SQL注入等。它还提供了用户认证和权限管理的功能,使开发人员能够轻松地构建安全可靠的Web应用。

  6. 可扩展性:Django框架非常灵活,允许开发人员根据需要进行扩展。它提供了一系列的插件和扩展,使开发人员能够轻松地添加新的功能或修改现有功能。

二、MTV模式

Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:

  • M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
  • T 表示模板 (Template):负责如何把页面(html)展示给用户。
  • V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。

除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template。

MTV流程图(取自bing图库)

三、安装Django框架并创建一个简易的项目

3.1 安装Django

3.1.1、pip安装

pip install django

3.1.2、 官网下载安装

要从官网下载Django,可以按照以下步骤进行操作:

  1. 打开Django的官方网站:The web framework for perfectionists with deadlines | Django
  2. 在主页上找到并点击"Download"按钮,或者直接访问https://www.djangoproject.com/download/。
  3. 在下载页面上,你可以选择不同的版本进行下载。选择一个适合你的版本,点击对应的下载链接。
  4. 下载完成后,将下载的压缩包解压到你想要安装Django的目录中。
  5. 打开命令行终端,进入到解压后的Django目录。
  6. 运行命令python setup.py install,这将安装Django到你的Python环境中。Django 将要被安装到 Python 的 Lib下site-packages。
  7. 然后是配置环境变量,将这几个目录添加到系统环境变量中: C:\Python33\Lib\site-packages\django;C:\Python33\Scripts。 添加完成后就可以使用Django的django-admin.py命令新建工程了。
  8. 检查是否安装成功:
# python命令行输入
>>> import django
>>> django.get_version()

3.2 创建一个简易的项目

1.pycharm中选择Django创建项目(在此之前要先下载django包)

创建的目录如下:(我创建的项目名为Helloworld)

目录说明:

  • Helloworld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • Helloworld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • Helloworld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • Helloworld/settings.py: 该 Django 项目的设置/配置。
  • Helloworld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • Helloworld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

 修改代码

结果展示:(点击运行,在浏览器输入127.0.0.1:8000/login/)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/123992.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用关键字interface来声明使用接口-PHP8知识详解

继承特性简化了对象、类的创建,增加了代码的可重用性。但是php8只支持单继承,如果想实现多继承,就需要使用接口。PHP8可以实现多个接口。 接口类通过关键字interface来声明,接口中不能声明变量,只能使用关键字const声明…

协议栈——收发数据(拼接网络包,自动重发,滑动窗口机制)

目录 协议栈何时发送数据~ 数据长度 IP模块的分片功能 发送频率 网络包序号~利用syn拼接网络包ack确认网络包完整 确定偏移量 服务器ack确定收到数据总长度 序号作用 双端告知各自序号 协议栈自动重发机制 大致流程 ack等待时间如何调整 是…

找不到msvcr120.dll怎么办?电脑缺失msvcr120.dll的修复方法

msvcr120.dll 是 Microsoft Visual C Redistributable Package 中的一个动态链接库文件,它包含了 C 运行时库的一些功能。这个文件通常与 Visual C 2010 编译器一起使用,用于支持一些大型游戏和应用程序的运行。msvcr120.dll 文件的主要作用是提供 C 语言…

阿里云关系型数据库有哪些?RDS云数据库汇总

阿里云RDS关系型数据库大全,关系型数据库包括MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB,阿里云百科分享阿里云RDS关系型数据库大全: 目录 阿里云RDS关系型数据库大全 …

WebSocket实战之五JSR356

一、前言 前几篇WebSocket例子服务端我是用NodeJS实现,这一篇我们用Java来搭建一个WebSocket服务端,从2011年WebSocket协议RFC6455发布后,大多数浏览器都实现了WebSocket协议客户端的API,而对于服务端Java也定义了一个规范JSR356,即Java API for WebSoc…

TouchGFX之后端通信

在大多数应用中,UI需以某种方式连接到系统的其余部分,并发送和接收数据。 它可能会与硬件外设(传感器数据、模数转换和串行通信等)或其他软件模块进行交互通讯。 Model类​ 所有TouchGFX应用都有Model类,Model类除了存…

Collagen

\ collagen XV/XVIII, Endostatin- angiogenesis inhibitor; c-type lectin 结构; TSP ( 含有 Laminin-G)

【Pytorch笔记】4.梯度计算

深度之眼官方账号 - 01-04-mp4-计算图与动态图机制 前置知识:计算图 可以参考我的笔记: 【学习笔记】计算机视觉与深度学习(2.全连接神经网络) 计算图 以这棵计算图为例。这个计算图中,叶子节点为x和w。 import torchw torch.tensor([1.]…

【pwn入门】用gdb实现第1个pwn

声明 本文是B站你想有多PWN学习的笔记&#xff0c;包含一些视频外的扩展知识。 有问题的源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> char sh[]"/bin/sh"; int func(char *cmd){system(cmd);return 0; }int main(){char …

Linux基本指令(上)——“Linux”

各位CSDN的uu们好呀&#xff0c;今天&#xff0c;小雅兰的内容是Linux啦&#xff01;&#xff01;&#xff01;主要是Linux的一些基本指令和Linux相关的基本概念&#xff08;系统层面&#xff09;&#xff0c;下面&#xff0c;让我们进入Linux的世界吧&#xff01;&#xff01;…

【C语言】【动态内存管理】malloc,free,calloc,realloc

1.malloc函数 void* malloc(size_t size)功能&#xff1a;向内存申请字节为 size大小的空间 使用时要包含头文件&#xff1a;<stdlib.h> 开辟成功&#xff1a;返回开辟好的空间初始地址的指针 开辟失败&#xff1a;返回空指针 NULL 使用举例&#xff1a; (malloc和free…

基于Redis实现消息队列的实践

为什么要基于Redis实现消费队列&#xff1f; 消息队列是一种典型的发布/订阅模式&#xff0c;是专门为异步化应用和分布式系统设计的&#xff0c;具有高性能、稳定性及可伸缩性的特点&#xff0c;是开发分布式系统和应用系统必备的技术之一。目前&#xff0c;针对不同的业务场…