Python之Web开发中级教程----搭建Web框架一

准备环境:ubuntu,Python3.6.9

一、Web应用程序的原理

接收并解析HTTP请求,获取客户的请求信息->处理完成请求的业务逻辑->返回处理结果HTTP响应。

Web框架的架构是这样的:

基于python的web框架,如tornado、flask、webpy都是在这个范围内进行增删裁剪的。例如tornado用的是自己的异步非阻塞“wsgi”,flask则只提供了最精简和基本的框架。Django则是直接使用了WSGI,并实现了大部分功能。

二、本教程采用Django框架。

1、Django简介

  百度百科:开放源代码的Web应用框架,由Python语言编写......

  重点:一个大而全的框架,啥都替你考虑好了。

其它基于python的web框架,如tornado、flask、webpy都是在这个范围内进行增删裁剪的。例如tornado用的是自己的异步非阻塞“wsgi”,flask则只提供了最精简和基本的框架。Django则是直接使用了WSGI,并实现了大部分功能。

2. MVC/MTV介绍

  MVC百度百科:全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  通俗解释:一种文件的组织和管理形式!不要被缩写吓到了,这其实就是把不同类型的文件放到不同的目录下的一种方法,然后取了个高大上的名字。当然,它带来的好处有很多,比如前后端分离,松耦合等等,就不详细说明了。       

  模型(model)定义数据库相关的内容,一般放在models.py文件中。

  视图(view)定义HTML等静态网页文件相关,也就是那些html、css、js等前端的东西。

  控制器(controller)定义业务逻辑相关,就是你的主要代码。  

  MTV: 有些WEB框架觉得MVC的字面意思很别扭,就给它改了一下。view不再是HTML相关,而是主业务逻辑了,相当于控制器。html被放在Templates中,称作模板,于是MVC就变成了MTV。这其实就是一个文字游戏,和MVC本质上是一样的,换了个名字和叫法而已,换汤不换药。

3.Django的MTV模型组织

  目录分开,就必须有机制将他们在内里进行耦合。在Django中,urls、orm、static、settings等起着重要的作用。一个典型的业务流程是如下图所示:(WSGI: Web服务器网关接口)

4.安装Django

在ubuntu的终端下输入以下的命令:

python3.6 -m pip install Django==3.0

由于系统里有多个版本的python,所以可以指定python版本3.6.

Django版本也有多个,可以指定安装匹配的版本3.0

5.ubuntu系统中配置django.

安装好后,输入命令:django-admin –version 返回的结果是找不到命令,原因是环境变量里没有设置。

在ubuntu的终端下输入以下的命令:

sudo ln -s /home/go/.local/bin/Django-admin.py /usr/local/bin/Django-admin

执行:django-admin --version 测试环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab去除图片上的噪声

本问题来自CSDN-问答板块,题主提问。 如何利用matlab去除图片上的噪声? 一、运行效果图 左边是原图,右边是去掉噪音后的图片。 二、中文说明 中值滤波是一种常见的图像处理技术,用于去除图像中的噪声。其原理如下: 1. 滤波器移动:中值滤波器是一个小的窗口,在图像上移…

python处理csv文件

1.使用 csv_writer.writerow # 导入CSV安装包 import csv# 1. 创建文件对象 f open(文件名.csv,a,encodingutf-8)# 2. 基于文件对象构建 csv写入对象 csv_writer csv.writer(f)# 3. 构建列表头 csv_writer.writerow(["问题","答案"])list_name[] # 4. 写…

raid0、raid1、raid5、raid10选哪个?一文给你答案!

下午好,我的网工朋友。 关于磁盘阵列的用法,总有朋友对其用途与功能一知半解,很容易弄混。 而我们在做监控项目存储时,经常会用到磁盘阵列。 什么是磁盘阵列?为什么要做磁盘阵列?用什么样的磁盘阵列合适…

Buildroot 之一 详解源码及架构

在之前的博文中,我们学习了直接通过 Makefile 手动来进行构建 U-Boot 和 Linux Kernel 等,其实,目前存在多种嵌入式 Linux 环境的构建工具,其中,Buildroot 就是被广泛应用的一种。今天就来详细学习一个 Buildroot 这个自动化构建工具。 Buildroot Buildroot 是一个运行于…

Jenkins Pipeline实现Golang项目的CI/CD

Jenkins Pipeline实现Golang项目的CI/CD 背景 最近新增了一个Golang实现的项目,需要接入到现有的流水线架构中。 流程图 这边流程和之前我写过的一篇《基于Jenkins实现的CI/CD方案》差不多,不一样的是构建现在是手动触发的,没有配置webho…

IOT的发展历程及其优势——青创智通

工业互联网-物联网-设备改造-IOT-青创智通 ​随着科技的不断发展,物联网(IoT)已经逐渐成为了我们生活中不可或缺的一部分。IoT是指通过互联网将各种物理设备连接起来,实现设备之间的数据交换和智能化控制。IoT的发展不仅改变了我们…

Window10数据库崩溃启动失败,MySQL8.0.30通过data文件夹恢复数据库到Docker

背景: 昨天关机前还在使用mysql,一切正常,但今天打开电脑,发现mysql启动不起来了,老是提示端口占用,但是系统也没有新安装什么软件,而且通过查询nat命令也没发现3306端口占用。而且修改成3307等…

组态软件的概念

一、前言 组态软件是一种用于设计、配置和管理自动化系统的软件。它可以帮助用户快速地创建和修改自动化系统的界面、逻辑和通信功能,从而提高生产效率和质量。 二、组态软件的定义 组态软件是一种集成开发环境,用于设计、配置和管理自动化系统。它通…

两会声音|中国石化人大代表:要突出战略性新兴产业、未来产业的位置

十四届全国人大二次会议即将闭幕,“新质生产力”首次写入政府工作报告,并出现在了重要位置。政府工作报告主要从推动产业链供应链优化升级、积极培育新兴产业和未来产业、深入推进数字经济创新发展等三个方面进行了阐述和规划。 全国两会期间&#xff0c…

2024 年系统架构设计师(全套资料)

2024年5月系统架构设计师最新第2版教材对应的全套视频教程、历年真题及解析、章节分类真题及解析、论文写作及范文、教材、讲义、模拟题、答题卡等资料 1、2023年11月最新第2版本教材对应全套教程视频,2022年、2021年、2020年、2018年、2016年五套基础知识精讲视频、…

搭建nacos集群,并通过nginx实现负载均衡

nacos、eureka、consul、zookeeper等都是常用的微服务注册中心,这篇文章详细介绍一下在Ubuntu操作系统上搭建一个nacos的集群,以及通过nginx的反向代理功能实现nacos的负载均衡。 目录 一、安装nacos 1、安装nacos 2、修改nacos配置文件 3、创建naco…

学习JAVA的第十九天(基础)

目录 File 成员方法(判断和获取) 成员方法(创建和删除) 成员方法(获取并遍历) IO流 FileOutputStream FileInputStream 文件拷贝 前言:学习JAVA的第十八天(基础)…

【C语言】Linux内核pci_read_config_和pci_write_config_

一、pci_read_config_讲解 这些函数是Linux内核中用于从PCI设备的配置空间读取信息的函数。配置空间是PCI设备的一小块内存,它存储了关于该设备的重要信息,例如设备ID、供应商ID、中断设置等。 pci_read_config_byte、pci_read_config_word、pci_read_c…

章六、集合(1)—— 概念、API、List 接口及实现类、集合迭代

零、 关闭IDEA调试时自动隐藏空元素 一、 集合的概念 存储一个班学员信息,假定一个班容纳20名学员 当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器。 数组有什么缺…

一文读懂:公网IP地址证书

公网IP证书是一种SSL证书,用于验证和确认特定的公网IP地址是否实际属于申请者。如果验证通过,证书颁发机构将向该IP地址持有人颁发一个以IP地址为主题的SSL证书。使用公网IP证书可以有效提升IP身份的辨识度,减少网站链接被假冒的风险&#xf…

学会这7种SQL进阶用法,让你少走99%的弯路!

引言 在日常业务开发中,熟练掌握SQL语言是至关重要的。除了基础的增删改查操作外,了解和掌握一些进阶的SQL用法能够让你更高效地处理各种复杂的数据操作。本文将介绍几种SQL进阶用法,让你少走99%的弯路,提高数据处理效率。 自定…

【Idea】八种Debug模式介绍

1.行断点 在对应的代码行左侧边栏点击鼠标左键,会出现一个红色圆圈,以debug模式执行时当代码运行到此处则会停止,并可以查询相关上下文参数 2.方法断点 在方法左侧点击创建断点,在方法进入时会停止,同时可以右键断点,…

vite vue3 路由配置@找不到文件问题描述

问题描述 在vite.config.js文件中配置路由的时候,添加路由界面,找不到指定的文件,提示错误,如图所示: 但是换成 ./ 或者 ../ 就正常了,也没有报错问题 解决办法 1.安装一个path的插件 npm install --sav…

风车IM即时通讯系统APP源码DJ2403版完整苹果安卓教程

关于风车IM,你在互联网上能随便下载到了基本都是残缺品, 经过我们不懈努力最终提供性价比最高,最完美的版本, 懂货的朋友可以直接下载该版本使用,经过严格测试,该版本基本完美无缺。 1.宝塔环境如下: Ngin…

什么是Git引用和分支?

一. 引言 什么是Git引用和分支?比如我在 Github 上一个项目的 .git/refs目录下: ├─heads │ dev │ master │ ├─remotes │ └─origin │ master │ └─tags refs 目录下包含了 heads、remote、tags 三个子目录&#xff0…