python web开发基础
网站是存储在服务器上的文件,服务器是托管网站的计算机。这些服务器连接到一个称为 Internet 的网络。访问这些网站的计算机称为“客户端”。
要访问网站需要知道其IP地址,IP 地址是一串唯一的数字。每个设备都有一个 IP 地址。可以在控制台cmd输入命令ipconfig获取自己的ip。也可以使用其 IP 地址访问网站,但大多数使用域名或通过搜索引擎访问网站。
前端(客户端)是用户看到并与之交互的网站或软件的一侧。
后端(服务器端)是在使用 Internet 时看不到的一侧。
CMS是一个Web 应用程序或一系列用于创建和管理 Web 内容的程序,CMS 通常用于电子商务和博客。
Web 开发:构建、创建和维护网站。Web开发可以分为两种方式: 前端开发,后端开发。
前端开发:用户直接交互的网站部分称为前端, 它也被称为应用程序的“客户端”。
后端开发:后端是网站的服务器端。 它是用户无法看到和交互的网站部分。 它是不与用户直接接触的软件部分。 它用于存储和排列数据。
图来源: Web Development - GeeksforGeeks
构建 Web : HTTP 请求和响应、客户端(通常是 Web 浏览器)和服务器(Web 服务器),例如Nginx和Apache,HTML、 CSS和JavaScript。
图来源:A complete guide to web development in Python
网络安全是保护数据、网络和计算机免受有恶意行为者希望找到网站中的漏洞以暴露私人信息、窃取数据和崩溃服务器。
Web 应用程序框架 或简称“Web 框架”是一种软件框架,旨在支持 Web 应用程序的开发,包括 Web 服务、Web 资源和 Web API。 简而言之,框架是帮助您更快、更智能地开发应用程序的库。
Python Web 框架仅用于服务器端技术的后端,有助于 URL 路由、HTTP 请求和响应、访问数据库和 Web 安全。
超文本传输协议 (HTTP) :客户端和服务器之间的请求-响应协议工作。 它是一组规则(一种协议),用于定义应如何通过 Internet 发送消息。它允许您在网站页面和网站之间跳转。当您在 Web 浏览器中键入网站或通过搜索引擎搜索某些内容时,HTTP 提供了一个框架,以便客户端(计算机)和服务器在通过 Internet 相互发出请求和响应时可以使用相同的语言。它本质上是你和互联网之间的翻译器——它读取你的网站请求,读取从服务器发回的代码,并以网站的形式为你翻译。
- 你在浏览器输入网址http://xxxx.com/xxxx。
- 你的设备和服务器建立了TCP连接。
- 你的浏览器向服务器发送HTTP 请求。
- 服务器接收 HTTP 请求并对其进行解析。
- 服务器以HTTP 响应进行响应。
- 你的计算机接收、解析并显示响应。
HTTPS 代表安全的超文本传输协议。从根本上说,HTTPS 与 HTTP 是相同的协议,但增加了通信安全的含义。 HTTPS 由通过加密连接发送的常规 HTTP 组成。通常,此加密连接由 TLS 或 SSL 提供,它们是加密协议,可在信息通过网络发送之前对其进行加密。
两种 HTTP(超文本传输协议)请求方法: GET 和 POST 请求
- GET :从服务器请求数据。
- POST :将要处理的数据提交给服务器。
使用 Python 进行 Web 开发
一、前端
1、构建网站的基础HTML + CSS
HTML 定义网页结构的基本技术,用于指定 Web 内容是否应被识别为段落、列表、标题、链接、图像、多媒体播放器、表单或许多其他可用元素之一,甚至是定义的新元素。元素是开始标签,后跟内容,然后是结束标签。
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>My test page</title></head><body><p>This is my page</p></body>
</html>
css它为网站添加了排版、颜色和布局等设计元素,以改善网站的整体“外观”。
.box {background-color: #567895;
}h2 {background-color: black;color: white;
}
2、Javascript向网站添加功能
Javascript添加动画、在某些页面中自动执行任务以及添加可增强用户体验的交互功能。
Javascript是一种脚本或编程语言,可在网页上实现复杂的功能 - 每次网页所做的不仅仅是坐在那里并显示静态信息 - 显示及时的内容更新、交互式地图、动画 2D/ 3D 图形等。它是标准 Web 技术的第三层 。
const para = document.querySelector('p');para.addEventListener('click', updateName);function updateName() {const name = prompt('Enter a new name');para.textContent = `Player 1: ${name}`;
}
3、前端框架构建一个功能齐全的全栈 Web 应用程序。前端框架有React、Angular、Vue.js、Ember.js、jQuery等。
二、Python Web 开发框架最流行的是:Django 和 Flask。
1、Flask是一个简约和轻量级的 Web 框架,只提供构建应用程序所需的组件。对独特的系统更加开放。开发人员可以随心所欲地创建后端系统,但他们可能不会以这种方式使用最佳实践。使用Flask的公司有Netflix、Linkedin 和 Uber 等。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。
jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。
Flask通常被称为微框架。 它旨在保持应用程序的核心简单且可扩展。Flask没有用于数据库处理的内置抽象层,也没有形成验证支持。相反,Flask支持扩展以向应用程序添加此类功能。
from flask import Flaskapp = Flask(__name__)@app.route("/")
def hello_world():return "<p>Hello, World!</p>"
2、Django是一个 Python Web 框架,它提供了一个开源的高级框架,快速、安全且可扩展,提供许多特性和功能,例如 Web 模板引擎、帐户授权和身份验证。Django 更加封闭,鼓励开发人员以“Django 方式”做事。虽然这可能会让人感到限制,但这也意味着开发人员更有可能一开始就正确地做事。使用 Django 的最大公司有 Instagram、Dropbox、Pinterest 和 Spotify。
Django 为所有内容提供内置功能,包括 Django 管理界面、默认数据库 - SQLlite3 等。当您构建网站时,您总是需要一组类似的组件:一种处理用户的方法身份验证(注册、登录、退出)、网站的管理面板、表单、上传文件的方式等。Django 为您提供了现成的组件供您使用,也可用于快速开发。
Django 基于 MVT(模型-视图-模板)架构。 MVT 是一种用于开发 Web 应用程序的软件设计模式。
模型 :模型将充当数据的接口。 它负责维护数据。 它是整个应用程序背后的逻辑数据结构,以数据库(一般是MySql、Postgres等关系型数据库)为代表。
视图 :视图是用户界面——当你渲染一个网站时你在浏览器中看到的。 它由 HTML/CSS/Javascript 和 Jinja 文件表示。
模板 :模板由所需 HTML 输出的静态部分以及描述如何插入动态内容的一些特殊语法组成。
三、数据库
数据库负责存储、组织和处理数据,以便服务器请求可以检索这些数据。数据层是一个庞大的信息仓库。 它包含一个 数据库存储库 ,该存储库从前端到后端捕获和存储信息。
MySQL 是一个开源的关系数据库管理系统,提供多用户访问并支持多存储引擎。
MongoDB 易用性和处理大量数据的速度快。 它是一个开源的、面向对象的 NoSQL 数据库,具有高度可扩展性,并且在处理非结构化数据方面非常高效。
四、服务器
服务器是构成你的计算机的硬件和软件。服务器负责发送、处理和接收数据请求。它们是数据库和客户端/浏览器之间的中介。实际上,浏览器会告诉服务器“我需要这个信息”,服务器会知道如何从数据库中获取该信息并将其发送给客户端。
web服务器可以是apache、NGINX等服务器,负责处理各种静态文件和缓存目的,还可以将服务器用作负载平衡器。
nginx
nginx是一个http服务器,采用事件驱动的异步非阻塞处理方式框架,nginx三个核心功能:静态服务器、反向代理、负载均衡。当流量增多,为提高性能,使用nginx可以将这些请求分配到多个服务器,还提供安全性和缓存。 前端的users通过不同app/外部网页把这些请求发到nginx,通过nginx把请求进行反向代理,代理到后端应用服务器/web服务器上,再通过服务器的应用访问数据库,最后把请求结果返回给users.
WSGI
Web 服务器必须与 Python 应用程序交互,需要一个中介来执行 Web 服务器和 Python 应用程序之间的交互。Web 服务器和 Python 应用程序之间进行通信的标准是 WSGI,Web 服务器能够发送请求或与 WSGI 容器通信。 同样,Python 应用程序提供了一个“可调用”对象,其中包含由 WSGI 应用程序调用的某些功能,这些功能是根据 PEP 3333 标准定义的。 因此,有多个 WSGI 容器可用,例如 Gunicorn、uWSGI 等。
用户、Web 服务器、WSGI 和 Python 应用程序之间的通信
参考:https://medium.com/analytics-vidhya/what-is-wsgi-web-server-gateway-interface-ed2d290449e
在项目中安装 WSGI 容器,以便 Web 服务器可以与 WSGI 容器通信,该容器进一步与 Python 应用程序通信并相应地返回响应。 最后,当 Web 服务器获得响应时,将其发送回 Web 浏览器/用户
WSGI 代表“Web 服务器网关接口”。 它用于将来自 Web 服务器 (例如 Apache 或 NGINX ) 的请求转发到后端 Python Web 应用程序或框架。 然后从那里将响应传递回网络服务器以回复请求者。
请求从客户端的浏览器发送到服务器。 WSGI 将请求转发到 webserver python 应用程序,然后将完成的请求返回到 webserver 并返回到浏览器。
WSGI 有两个主要组件; 首先是服务器端。 服务器端元素将调用通常由路由定义的可调用对象。 一旦被调用,第二个组件,即 Web 应用程序或框架,将包含要执行的结构和代码。 在 Flask 等框架中,路由是用装饰器定义的。
五、Web 安全
XSS跨站脚本,用于描述允许攻击者通过网站将客户端脚本注入其他用户的浏览器的一类攻击。由于注入的代码是从站点进入浏览器的,因此代码是受信任的,并且可以执行诸如将用户的站点授权 cookie 发送给攻击者之类的操作。当攻击者拥有 cookie 时,他们可以像用户一样登录网站并执行用户可以做的任何事情,例如访问他们的信用卡详细信息、查看联系详细信息或更改密码。
SQL 注入漏洞使恶意用户能够在数据库上执行任意 SQL 代码,从而允许访问、修改或删除数据,而无需考虑用户的权限。成功的注入攻击可能会欺骗身份、创建具有管理权限的新身份、访问服务器上的所有数据或破坏/修改数据以使其无法使用。
CSRF 攻击允许恶意用户在不知情或不同意的情况下使用其他用户的凭据执行操作。
六、购买域名
一般有两种为网站购买域名的方法:一是购买全新的域名;或者购买二手域名。
购买新域名:访问西部数码之类的主机服务商网站,输入所需域名的名称,如果未被他人注册,就购买该域名。
如果想要的域名已经被他人注册拥有,也可以联系域名所有者进行谈判收购。
购买域名后网站将拥有一个 IP 地址,然后就可以启动网站。
python web开发基础相关推荐
- python web开发基础_python web开发基本概念
参考了廖雪峰的Python博客. web请求顺序: 浏览器发送一个http请求 服务器收到请求后,生成一个html文档. 服务器将html文档作为http相应的body发送给浏览器 浏览器收到http ...
- [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
参考链接: 在Python中创建代理Web服务器 2 Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python We ...
- python notebook右侧网页_《Python web开发》笔记 一:网页开发基础
网页基础知识 网页的构成 网页由html.css和Javascript构成,html是框架,CSS是样式和装饰,JS则是各项功能实现.我们把网页的组成类比成一栋房子,Html相当于房子的结构,CSS相 ...
- python web开发 CSS基础
文章目录 1. 基础知识 2. ID,Class 选择器 3. CSS盒子模型 4. 嵌入CSS样式 4.1 内联样式表 4.2 内部样式表 4.3 外部样式表 learning from <p ...
- python web开发 HTML基础
文章目录 1. 简介 2. 标签元素属性 3. 表格 4. 列表 ol 有序 ul 无序 自定义列表 5. 表单 输入域标记 input 选择域标记 select, option 文字域标记 text ...
- 篇一、Flask打造 Python Web 开发的灵活框架,实现简易登录。要求有 Python、HTML 和 CSS 基础。
⭐ 简介:大家好,我是zy阿二,我是一名对知识充满渴望的自由职业者. ☘️ 最近我沉溺于Python的学习中.你所看到的是我的学习笔记. ❤️ 如果对你有帮助,请关注.点赞,让我们共同进步.有不足之处 ...
- python web开发 Bootstrap框架基础
文章目录 1. 安装 2. Bootstrap 5 基本应用 learning from <python web开发从入门到精通> Bootstrap 是最受欢迎的 前端组件库,用于 HT ...
- python web开发 jQuery基础
文章目录 1. 引入 jQuery 2. 基本语法 3. jQuery 选择器 3.1 元素选择器 3.2 #id 选择器 3.3 .class 选择器 4. jQuery事件 5. 获取内容和属性 ...
- python web开发 JavaScript基础
文章目录 1. script 标签 2. 字面量.变量 3. 数据类型 4. 运算符 5. if 条件 6. switch分支 7. for循环 8. while循环 9. break, contin ...
最新文章
- 网页制作中的背景处理
- 推翻Hinton NeurIPS论文结论!审稿人评价:该文章在标签平滑和知识蒸馏的关系上取得了重大突破!...
- 如何在Windows 10中将您喜欢的设置固定到开始菜单
- SecureCRT密钥远程登录Linux
- QuerWrapper常用方法
- 分布式系统面试 - 常见问题
- C++语言学习(十九)——C++类型识别
- 使用PHP对word文档进行操作的方法
- Windows 平台sqlalchemy 连接oracle数据库
- STOA-diary-20110312-抉择
- win7系统启用还原服务器,小编为你讲解win7系统提示服务器上的MSDTC不可用的还原方案...
- Java、JSP药品库房管理系统
- 最小生成树算法之Prim(普里姆)算法
- 安装ecshop php,如何安装ECSHOP?
- 【高级PDF库】上海道宁为您提供先进的.Net库,完全控制您的PDF创建工作流程,在WEB或任何服务器系统上创建动态PDF
- ps命令应用(查看进程)
- vue+springboot+阿里云短信服务(集成redis实现验证码登录业务)
- Windows11 hosts 文件无法修改怎么办?
- HTML期末大作业课程设计~仿阴阳师游戏官网首页html模板(HTML+CSS)~动漫主题html5网页模板-HTML期末作业课程设计期末大作业动漫主题html5网页模板-html5网页设计源码
- Pandas含中文表格对齐输出
热门文章
- 各搜索搜索引擎登录地址
- chcon mysql_Linux中的SELinux与chcon以及Samba实现【转】
- 猎聘如何为自己猎获员工?| 中国独角兽豹变之路
- 模拟和数字信号的桥梁——奈奎斯特采样定理
- 【实战案例】Unity从零开始开发初级案例 - 找你妹
- 计算机公办学校招收人数,速看!2021年城区小升初微机派位指南来了!
- 淘淘商城taotao-image-server.7z文件
- 前端工程化基础和架构设计
- html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
- nginx关闭服务命令