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中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse