当前位置: 首页 > news >正文

【Web开发】Python实现Web服务器(Django)

🍺Web服务器系列相关文章编写如下🍺:

  1. 🎈【Web开发】Node.js实现Web服务器(http模块)🎈
  2. 🎈【Web开发】Node.js实现Web服务器(express模块)🎈
  3. 🎈【Web开发】Python实现Web服务器(Flask快速入门)🎈
  4. 🎈【Web开发】Python实现Web服务器(Flask案例测试)🎈
  5. 🎈【Web开发】Python实现Web服务器(Flask部署上线)🎈
  6. 🎈【Web开发】Python实现Web服务器(Tornado入门)🎈
  7. 🎈【Web开发】Python实现Web服务器(Tornado+flask+nginx)🎈
  8. 🎈【Web开发】Python实现Web服务器(FastAPI)🎈
  9. 🎈【Web开发】Python实现Web服务器(Bottle)🎈
  10. 🎈【Web开发】Python实现Web服务器(Django)🎈

文章目录

  • 1、简介
  • 2、安装
  • 3、测试
    • 3.1 创建第一个项目
  • 结语

1、简介

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

在这里插入图片描述

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

在这里插入图片描述
Django是一个开源的Python Web应用框架,采用了 MVT的框架模式,即模型M,视图V和模版T ,最早于2005年发布。Django被认为是"大而全"的重量级Web框架,其自带大量的常用工具和组件(比如数据库ORM组件、用户认证、权限管理、分页、缓存), 甚至还自带了管理后台Admin,适合快速开发功能完善的企业级网站。 Django自带免费的数据SQLite,同时支持MySQL与PostgreSQL等多种数据库。 Flask和Django均是当今最流行的Python Web框架。
在这里插入图片描述

Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:

M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
T 表示模板 (Template):负责如何把页面(html)展示给用户。
V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。
除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template。

在这里插入图片描述
Django项目的结构布局是刚性的,每个人写的项目结构最后都差不多,你可以清楚地知道在哪个APP的哪个文件夹里找到哪个文件(media目录, static目录, template目录,views.py, models.py, forms.py, etc)。在项目结构上,Flask是很灵活的,你可以随意地组织自己的代码,1000个APP说不定就有有1000种组织代码的方式。
在这里插入图片描述

2、安装

Django is available open-source under the BSD license. We recommend using the latest version of Python 3. The last version to support Python 2.7 is Django 1.11 LTS. See the FAQ for the Python versions supported by each version of Django.

pip install Django==4.1.1

在这里插入图片描述
or

git clone https://github.com/django/django.git
  • 目前支持的版本
    See the supported versions policy for detailed guidelines about what fixes will be backported.
    在这里插入图片描述
    在这里插入图片描述
  • 代码打印版本信息
python -m django --version

or

import django 
print(django.VERSION)
# or
print(django.get_version())

在这里插入图片描述

  • diango-admin命令
    在这里插入图片描述

3、测试

3.1 创建第一个项目

  • 新建项目
django-admin startproject HelloWorld
cd helloworld
tree

在这里插入图片描述

  • 目录说明:

  • HelloWorld: 项目的容器。

  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

  • HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。

  • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。

  • HelloWorld/settings.py: 该 Django 项目的设置/配置。

  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。

  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

  • 启动服务器:

python manage.py runserver 0.0.0.0:8080
# or
python manage.py runserver 8080
# or
python manage.py runserver 0:8080
# or
py manage.py runserver

在这里插入图片描述
在这里插入图片描述
在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 views.py 文件:

  • HelloWorld/HelloWorld/views.py:
from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world ! 爱看书的小沐!")
  • HelloWorld/HelloWorld/urls.py:
from django.contrib import admin
from django.urls import path

from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', views.hello),
]

在这里插入图片描述
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!
在这里插入图片描述

相关文章:

  • matlab与python编程对照
  • 搞懂Nginx+keepalived实现双机热备,Nginx服务的高可用
  • YOLOV5通道剪枝【附代码】
  • 【Vuex】vue状态机详解
  • 使用 shell 脚本二进制部署 k8s 环境 [支持 docker 和 containerd]
  • windows 和 ubuntu 系统区别
  • Docker基础:Dockerfile相关知识介绍
  • Elastic实战:canal自定义客户端,实现mysql多表同步到es
  • R语言dplyr包select_if函数筛选dataframe数据中的所有因子类型变量(筛选所有的因子数据列、is.factor)
  • LVC | 一种简单的小样本目标检测方法
  • TypeScript 贪吃蛇游戏详细教程
  • 无需内嵌代码的全新GUI截图方案在TouchGFX,ThreadX GUIX,emWin,LVGL,AWTK全部测试通过,含多缓冲方式玩法
  • 【信息科学技术与创新】机器学习 深度学习 人工神经网络相关分析
  • YOLO v7详解
  • 简简单单的结构体
  • 10个确保微服务与容器安全的最佳实践
  • Android系统模拟器绘制实现概述
  • AngularJS指令开发(1)——参数详解
  • Bootstrap JS插件Alert源码分析
  • Hibernate最全面试题
  • JavaWeb(学习笔记二)
  • JS字符串转数字方法总结
  • Linux中的硬链接与软链接
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Travix是如何部署应用程序到Kubernetes上的
  • Vue 动态创建 component
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • webpack+react项目初体验——记录我的webpack环境配置
  • 程序员该如何有效的找工作?
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 利用jquery编写加法运算验证码
  • 前端知识点整理(待续)
  • 手写双向链表LinkedList的几个常用功能
  • 算法-插入排序
  • 一天一个设计模式之JS实现——适配器模式
  • Java总结 - String - 这篇请使劲喷我
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #NOIP 2014# day.1 T2 联合权值
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (10)ATF MMU转换表
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core引入性能分析引导优化
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @RequestMapping用法详解