Django入门笔记(一):框架结构及原理解析

2023-10-24 04:50

本文主要是介绍Django入门笔记(一):框架结构及原理解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      • 1、下载安装
      • 2、创建django框架
      • 3、运行django
      • 4、创建app
      • 常用django命令

1、下载安装

Django框架是使用python语言开发的,因此可以直接使用pip进行安装:

pip install django

可以指定安装版本

我使用的python 3.8 选择的django 3.1.7(推荐最新安装django3.2版本,可长久支持)

安装后验证成功:

python -m django --version

在这里插入图片描述

2、创建django框架

创建项目:

django-admin startproject 项目名

项目名自己命名,注意避开常用关键字

age:

django-admin startproject oneMyweb

创建好后自动生成框架文件:
在这里插入图片描述

自动生成的文件如上图所示

根目录下的文件manage.py是用于项目管理的,通过此文件来执行管理操作,因此最里面的自动生成的文件不能随意更改名称,因为manage会调用它们。

setting.py文件是django项目的配置文件,包含了很多配置项,内饰与scrapy框架中的setting

urls.py文件是django框架得到前端http请求后,执行对应的函数对应关系。

wsgi.py文件:

首先要明白:wsgi – 是pyhton组织制定的web服务网关接口规范,简称wsgi 遵循wsgi规范的 web后端系统, 我们可以理解为 由两个部分组成

wsgi web serverwsgi web application

它们通常是运行在一个python进程中的两个模块,或者说两个子系统。

wsgi web server 接受到前端的http请求后,会调用 wsgi web application 的接口(
比如函数或者类方法)方法,由wsgi web application 具体处理该请求。然后再把处理结果返回给 wsgi web
server, wsgi web server再返回给前端。

如图所示在这里插入图片描述

这两个子系统有各自负责的重点。

wsgi web server 负责 提供高效的http请求处理环境,可以使用多线程、多进程或者协程的机制。

http 请求发送到 wsgi web serverwsgi web server 分配 线程或者进程或者 轻量级线程(协程),然后在
这些 线程、进程、或者协程里面,去调用执行 wsgi web application 的入口代码。

wsgi web application 被调用后,负责 处理 业务逻辑。 业务逻辑的处理可能非常复杂, wsgi web
application 需要精心的设计来正确处理。

django是 wsgi web application 的框架,它只有一个简单的单线程 wsgi web server。 供调试时使用。

产品正式上线运行的时候,通常我们需要高效的 wsgi web server 产品,比如
gunicorn,uwsgi,cherrypy等,结合Django ,组成一个高效的 后端服务。

所以这个 wsgi.py 就是 提供给wsgi web server调用 的接口文件,里面的变量application对应对象实现了wsgi入口,供wsgi web server调用 。

django2.x版本里只有一个wsgi.py文件,而django3.x版本中添加了一个asgi.py文件。

这里的asgi.py文件是wsgi.py的扩展:

WSGI是基于HTTP协议模式的,不支持WebSocket,而ASGI的诞生则是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。同时,ASGI对于WSGI原有的模式的支持和WebSocket的扩展,即ASGI是WSGI的扩展。

3、运行django

首先进入项目根目录,或则是pycharm的终端
输入如下命令:

python manage.py runserver
打开浏览器 输入运行后给予的本机ip,看到如下图片,即取得成功。。。
在这里插入图片描述

4、创建app

app是指python的一个应用包、实现各种功能

python manage.py startapp 包名

常用django命令

>django-admin.py helpType 'django-admin.py help <subcommAvailable subcommands:[django]check         检查Django项目的完整性compilemessages  编辑语言文件createcachetable  dbshell       进入Django dbshelldiffsettings  查看你的配置和Django的默认配置有和不同dumpdata      导出数据flush         清空数据库inspectdbloaddata       导入数据makemessages   创建语言文件makemigrations 生成数据库同步脚本migrate        同步数据库runserver      运行开发服务器sendtestemailshell          进入django shellshowmigrations  查看生成数据库的同步脚本sqlflush       查看生成清空数据库的脚本sqlmigrate     查看数据库同步的sql语句sqlsequenceresetsquashmigrationsstartapp       创建一个appstartproject    创建一个项目testtestserver

这篇关于Django入门笔记(一):框架结构及原理解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/272815

相关文章

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.