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当中的文件覆盖全局变量,在应用运行过程中修改配置文件配置文件也会立即生效,但我们一般不建议这么做。

相关推荐
毕设源码-钟学长3 分钟前
【开题答辩全过程】以 基于springboot和协同过滤算法的线上点餐系统为例,包含答辩的问题和答案
java·spring boot·后端
计算机毕设小月哥30 分钟前
【Hadoop+Spark+python毕设】中风患者数据可视化分析系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
Keep_Trying_Go32 分钟前
基于Zero-Shot的目标计数算法详解(Open-world Text-specified Object Counting)
人工智能·pytorch·python·算法·多模态·目标统计
q***441542 分钟前
Spring Security 新版本配置
java·后端·spring
计算机毕设匠心工作室1 小时前
【python大数据毕设实战】强迫症特征与影响因素数据分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
o***74171 小时前
Springboot中SLF4J详解
java·spring boot·后端
雨中散步撒哈拉1 小时前
18、做中学 | 初升高 | 考场一 | 面向过程-家庭收支记账软件
开发语言·后端·golang
韩立学长2 小时前
【开题答辩实录分享】以《智慧物业管理系统的设计与实现》为例进行答辩实录分享
java·后端·mysql
Trouville012 小时前
Pycharm软件初始化设置,字体和shell路径如何设置到最舒服
ide·python·pycharm