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

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

Spring Boot 3.x 中 WebClient 示例详解析

《SpringBoot3.x中WebClient示例详解析》SpringBoot3.x中WebClient是响应式HTTP客户端,替代RestTemplate,支持异步非阻塞请求,涵盖GET... 目录Spring Boot 3.x 中 WebClient 全面详解及示例1. WebClient 简介2.

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分