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.mfbz.cn/a/447852.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大厂AI课学习笔记NO.74】人工智能产业技术架构

包括基础层、技术层和应用层。 人工智能的产业技术架构是一个多层次、多维度的复杂系统,它涵盖了从基础硬件和软件设施到高级算法和应用技术的全过程。这个架构通常可以分为三个主要层次:基础层、技术层和应用层。下面我将详细论述这三个层次及其细分内…

GPU:使用阿里云服务器,免费部署一个开源大模型

前面提到CPU版本如何安装和部署ChatGLM,虽然能部署,但是速度和GPU比起来确实一言难尽。 然后找阿里云白嫖了一个服务器(省点用的话,不用的时候关机,可以免费用两个多月没问题),只要没有申请过 …

中医中的虚是什么?虚的分类?如何治疗气虚?

目录 中医中虚的分类气虚(此处指脾气虚)症状舌象:舌头中间区域有裂痕 或者 舌胖有齿痕身体上 解决方法其它脏腑气虚的情况及解决方法 血虚津液不足阴虚阳虚 中医中虚的分类 图片来源于微信视频的名为 路广林主任 的视频。 气虚(此…

使用gin框架,编写一个接收数据的api接口

功能:这里主要编写一个接口,将其json 数据存入对应的redis队列中,并统计每天的每小时请求数量 环境: go version go1.22.0 linux/amd64 平台 linux X64 步骤一 新建目录 命令如下: mkdir FormData 步骤二 新增…

javascript实现解决浮点数加减乘除运算误差丢失精度问题【收藏点赞】

相信程序都会遇到这样的问题,有时需要在js上做运算合计等浮点数加减乘除,但会有些浮点数会有误差问题。下面用js来解决浮点数加减乘除运算误差丢失精度这个请 【收藏点赞】。 是程序都会在浮点数加减乘除上有误差问题,这是计算机二进制生成的…

防御保护--第七次作业

题目 要求 在FW5和FW3之间建立一条IPSEC通道,保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 过程 FW5 FW3

Websocket在Asp.net webApi(.net framework)上的应用

之前在写看板部分的web api的时候,都是通过Ajax在规定时间内轮询调用web api,这样简单省事,但是当看板多了(并发量上来)以后,比较消耗服务器的性能,所以最近研究了websocket,希望使用…

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

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

【格与代数系统】格与哈斯图

【格与代数系统】格与代数系统汇总 目录 常见的偏序关系 覆盖 哈斯图 例1 例2 例3 格与哈斯图 例1 例2 常见的偏序关系 偏序关系:自反性反对称性传递性 整数集合上的小于等于(大于等于)关系、幂集中的包含关系 、正整数的整除和整…

网络原理初识(2)

目录 一、协议分层 1、分层的作用 2、OSI七层模型 3、TCP / IP五层(或四层)模型 4、网络设备所在分层 5、网络分层对应 二、封装和分用 发送过程(封装) 1、应用层(应用程序) QQ 2、传输层 3、网络层 4、数据链路层 5、物理…

AI皮肤测试的基本原理

人工智能测试皮肤的实现原理通常涉及计算机视觉和机器学习技术。以下是一般的实现步骤和原理,涉及数据收集、特征提取、模型训练和优化等多个步骤,利用这些步骤中的技术手段来实现对皮肤状况的识别和分类。北京木奇移动技术有限公司,专业的软…

Python 导入Excel三维坐标数据 生成三维曲面地形图(体) 5-2、线条平滑曲面且可通过面观察柱体变化(二)

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fr…

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

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

阿里云99元服务器和腾讯云99元服务器你选哪个?

99元一年云服务器可以选择阿里云或腾讯云,选择阿里云99元服务器还是腾讯云99元服务器?价格相同,阿腾云建议选择阿里云99元服务器,原因有二,阿里云99元服务器是ECS,腾讯云99元服务器是轻量应用服务器&#x…

【智能算法】蝙蝠算法(BA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景 2010年,Yang受到蝙蝠回声定位的特性启发,提出了蝙蝠算法(Bat Algorithm, BA)。 2.算法原理 2.1算法思想 蝙蝠算法模拟了蝙蝠利用回声定位系统寻找小型昆虫进行捕食的行为&…

ICLR 2024 | Meta AI提出ViT寄存器结构,巧妙消除大型ViT中的伪影以提高性能

论文题目:Vision Transformers Need Registers 论文链接:https://arxiv.org/abs/2309.16588 视觉Transformer(ViT)目前已替代CNN成为研究者们首选的视觉表示backbone,尤其是一些基于监督学习或自监督学习预训练的ViT&a…

Python3虚拟环境之virtualenv

virtualenv 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.7。所有第三方的包都会被pip安装到Python3的site-packages目录下。 如果要同时开发多个应用程序,这些应用程序都会共用一个Python,就是安装在系统的Pyt…

【力扣100】【好题】322.零钱兑换 || 01背包完全背包

添加链接描述 思路: dp[j]数组表示的是在金额达到 j 的时候所需要的最小硬币数金额:背包容量,每个硬币的个数都为1:背包中物品的价值,硬币面额:物品重量dp[j]min(dp[j],dp[j-coin]1) class Solution:def …

【c语言 】数组入门

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

Redhat Linux(RHEL) - Primavera P6 EPPM 安装及分享

引言 继上一期发布的Oracle Linux版环境发布之后,近日我又制作了基于Redhat Linux 的P6虚拟机环境,同样里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机,请先与Oracle Primavera销售代表…