Django简介

Django是什么

Web应用程序是指在服务器端运行的程序,不需要单独安装,而Django就是其中一个非常流行的框架。

网站运行的主要原理

网站运行的本质就是服务器与客户端之间的数据传输,而其中,超文本传输协议(HTTP)是万维网通信的基础,能确保数据在传输过程中不会丢失或者损坏。服务器负责托管web资源,这些资源的形式可以是图像、文本甚至音频,而每个资源都有一个统一的资源标识符(URI)来进行标识,最常见的资源标识符是URL,也就是我们俗称的web地址。

用户界面其实是代码经历过渲染后的界面,而浏览器引擎则会根据用户的不同交互行为来调用不同的渲染引擎,渲染引擎当中,网络组件负责处理通信问题和安全问题;JavaScript解释器负责解释并自行嵌入在网站当中的JavaScript代码并执行;UI后端用于用户绘制组合框和小窗口等。

同时,浏览器引擎当中也支持储存机制,像是用户存入其中的账号密码,或是首个页面的网址。

传统的用户开发体系结构为MVC模式(模型---视图---控制器),而Django则采用了虽有类似但有所不同的架构MVT(model---view---Template),其中,model负责与数据库交互,定义数据结构和业务逻辑,例如,要实现传入用户发布的博文,它的post方法当中就需要定义博客文章的标题、内容、发布时间等字段;view的作用是处理用户的请求并且返回相应,它在接受用户的输入的同时也会调用模型获取数据,然后选择合适的模板对其进行渲染,template(模板)当中定义了页面的内容和样式,并通过模板语言嵌入动态数据,在传统架构中,这一部分通常由视图完成,Django相比传统结构,更好的实现了数据处理和页面展示的分离,使开发者可以更加专注于某一模块的开发。

Django是基于python语言完成开发的,而当时大多数HTTP服务器软件都是使用C或者C++编写,因此无法直接执行Python代码,为此,需要通过通用网关接口(CGI)实现程序和服务器之间的交互,CGI是用于定义程序和服务器交互的标准协议,但每一个请求都会都会启动一个python解释器,因此,由Python编写CGI脚本只能用于低负载的情况。

WSGI全称Web服务器网关接口(Python Web Server Gateway Interface)是一种为Python定义的Web服务器和Web应用程序之间的简单而通用的接口,是一种非常好用的中间件(中间件是应用程序的一层,开发者不需要自己编写代码,只需要下载相应的中间件就可以实现对应的功能),简单来说,只要使用的框架支持WSGI协议,那么就可以在所有支持WSGI协议的服务器上部署,在开发过程中,创建完django,其中的wsgi.py文件本身就会为你创建好,不需要手动编写和改动。模板引擎用于将模板与数据模型进行组合以生成结果文档,有利于将html的代码分解以减少代码的耦合,同时提高了代码的复用。

Django的基本配置

在django当中,指定方式其实是默认配置环境变量,也就是说,即便配置文件settings.py为空,也会按照默认的配置文件去执行(默认配置的代码所在路径:django/config/global_settings.py),在启动过程中,Django会先读取全局变量的配置,然后根据settings.py当中的文件覆盖全局变量,在应用运行过程中修改配置文件配置文件也会立即生效,但我们一般不建议这么做。

相关推荐
周末程序猿4 分钟前
Linux高性能网络编程十谈|C++11实现22种高并发模型
后端·面试
程序员阿龙5 分钟前
【精选】计算机毕业设计Python Flask海口天气数据分析可视化系统 气象数据采集处理 天气趋势图表展示 数据可视化平台源码+论文+PPT+讲解
python·flask·课程设计·数据可视化系统·天气数据分析·海口气象数据·pandas 数据处理
ZHOU_WUYI11 分钟前
Flask与Celery 项目应用(shared_task使用)
后端·python·flask
且慢.58929 分钟前
Python_day47
python·深度学习·计算机视觉
佩奇的技术笔记37 分钟前
Python入门手册:异常处理
python
大写-凌祁1 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
冒泡的肥皂1 小时前
强大的ANTLR4语法解析器入门demo
后端·搜索引擎·编程语言
爱喝喜茶爱吃烤冷面的小黑黑1 小时前
小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
python·langchain·代理模式
IT_陈寒1 小时前
Element Plus 2.10.0 重磅发布!新增Splitter组件
前端·人工智能·后端
有梦想的攻城狮2 小时前
spring中的@RabbitListener注解详解
java·后端·spring·rabbitlistener