返回顶部
首页 > 资讯 > 后端开发 > Python >怎么理解Python web开发技术
  • 377
分享到

怎么理解Python web开发技术

2023-06-04 11:06:15 377人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“怎么理解python web开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先来问一个问题,如何来看待Python

本篇内容介绍了“怎么理解python web开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

首先来问一个问题,如何来看待Python WEB开发技术?如果不知道如何回答,我们换个问题:如何理解Python web的本质,这个我先用了三个程序来说明。

首先第一个是Python基于Socket编程,开放了8000端口,然后在指定端口处监听,接收到消息返回。

import socket

def handle_request(client):

buf = client.recv( 1024)

client.send( "Http/1.1 200 OKrnrn")

client.send( "Hello, Jeanron ")

def main():

sock = socket.socket(socket.AF_INET , socket.SOCK_STREAM)

sock.bind(( 'localhost', 8000))

sock.listen( 5)

while True:

connection , address = sock.accept()

handle_request(connection)

connection.close()

if __name__ == '__main__':

main()

这可以算是一个最基础的通信程序,而这里还没有牵扯到web方向的内容,有一个最基本的点就是这种方式没有任何的规范和要求,行则必达。而一说到web端,必然是和html挂钩的。对于处理web应用和web服务器的请求,必然要提到wsgi,这个和Java里面是类似的,在Java里面这种服务端的软件组件技术,叫做Servlet,其实它的定位就是轻巧的小玩意(lite),比如Java里面的applet也是类似的命名。Servlet能够动态的扩展web服务器的功能,简单来说,就是在Http服务器上提供了一个扩展的接口,是一个接口标注。我们简单扩展下。

按照JavaEE的规范,任何servlet都需要直接或间接的实现Servlet接口,即javax.servlet.Servlet,这个接口里面只定义了5个方法

因为servlet是协议无关的,要直接实现还是很困难的,所以,曾经的sun给除了实现Servlet接口的类,是javax.servlet.GenericServlet类。

这个通用的类只能是一个抽象类,里面的核心方法是service(),所以由此可以看出,它还是协议无关,依旧和协议无关,所以就有了新的实现类httpservlet,我们写web应用的时候只需要重点关注如何重写get和post方法即可。原来是从安全和扩展性上更倾向于post方法,但是目前get方法更流行一些。

所以明白了上面的一些内容,再来看Python就会明确很多。

python标准库提供的独立WSGI服务器称为wsgiref

WSGI(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app与web server之间接口格式,实现web app与web server间的解耦,Python默认封装了一个版本,所以我们可以很容易的开启一个simple_server来。

这样一来代码就有了基本的规范和标准,算得上是一个标准的web开端的姿势。还可以在这个基础上嵌入html标签,这样前端显示就会很丰富了。

#!/usr/bin/env python

#coding:utf-8

from wsgiref.simple_server import make_server

def RunServer( environ, start_response):

start_response( '200 OK', [( 'Content-Type', 'text/html')])

return '<h2>Hello, wsgi!</h2>'

if __name__ == '__main__':

httpd = make_server( '', 8000, RunServer)

print "Serving HTTP on port 8000..."

httpd.serve_forever()

但是这种方式的问题也很明显,比如有50类请求,我们在程序端如何处理,一种自然的思想就是我们需要解耦。比如是类别1,就切换到类别1 的逻辑处理,以此类推。但是这样一来,程序里就会嵌入大量的if-else块,而说实话这种方式还是比较粗放的,一点也不优雅。可以想象如果有200个不同的请求,程序有多臃肿。所以这种方式有待改进,我们可以自己手工来分离一些逻辑,形成不同的模块,不同的请求会有不同的逻辑处理和返回。

所以在这个基础上,我们需要第三个程序。

#!/usr/bin/env python

# coding:utf-8

from wsgiref.simple_server import make_server

def index():

return 'index'

def login():

return 'login'

def routers():

urlpatterns = (

( '/index/', index) ,

( '/login/', login) ,

)

return urlpatterns

def RunServer(environ , start_response):

start_response( '200 OK', [( 'Content-Type', 'text/html')])

url = environ[ 'PATH_INFO']

print(url)

urlpatterns = routers()

func = None

for item in urlpatterns:

if item[ 0] == url:

func = item[ 1]

break

if func:

return func()

else:

return '404 not found'

if __name__ == '__main__':

httpd = make_server( '', 8000, RunServer)

print "Serving HTTP on port 8000..."

httpd.serve_forever()

这里定义了一个路由转发的角色,负责处理请求的跳转和返回。如果自己再进一层抽象一下,其实也是可以的。

所以到目前为止,我们有了一个基本的认识,那就是还没有使用任何的web框架,但是已经能够处理基本的需求了。

使用框架只是一些具体功能的抽象,能够提高我们开发的效率,就跟我们使用记事本还是IDE开发是类似的。

当然这个时候,web的返回还是一些比较基础的内容,我们如果需要丰富的内容,比如数据放如表格,动态菜单等等。就需要做一系列额外的补充工作了。

Python web的一个基本的图形表示如下:

怎么理解Python web开发技术

客户端请求都会通过url的筛选,走入不同的逻辑处理,即不同的函数。

这一点和Java栈的web处理略有不同。

怎么理解Python web开发技术

所以前端技术就是这样层出不穷。我简单列了一些技术框架和方向。

后端(基于Python):

Django,Tornado,web.py,flask,

Bottle,CherryPy,Quixote

前端:

Java框架

angular.js, React,Jquery

vue.js, , node.js,

前端UI框架

bootstrap

Pure,EasyUI,AmazeUI,SB-admin 2

前端可视化

echarts,tableau

“怎么理解Python web开发技术”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么理解Python web开发技术

本文链接: https://lsjlt.com/news/237465.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解Python web开发技术
    本篇内容介绍了“怎么理解Python web开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先来问一个问题,如何来看待Python ...
    99+
    2023-06-04
  • Java Web技术怎么理解
    这篇文章主要介绍“Java Web技术怎么理解”,在日常操作中,相信很多人在Java Web技术怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java Web技术怎么理解”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • Web开发中有哪些技术
    本篇内容介绍了“Web开发中有哪些技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、A —;AJAXAJAX;全称为“Asynchron...
    99+
    2023-06-04
  • 如何理解AJAX开发技术
    本篇内容介绍了“如何理解AJAX开发技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!AJAX(Async...
    99+
    2024-04-02
  • web开发中用到哪些技术
    这篇文章主要讲解了“web开发中用到哪些技术”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web开发中用到哪些技术”吧!一、标准通用标记语言(SGML)1.HTML即超文本标记语言(Hype...
    99+
    2023-06-27
  • Django Web开发技术栈清单-P
    问题答案由本人整理 1.基础语法是否熟悉?介绍一下 Python和其他语言最大的区别就是使用行和缩进,而不是大括号({})或者分号(;)来控制类、函数或者逻辑判断。Python使用换行来表示语句的结束。但同时可以用左斜杠()将一行语句分...
    99+
    2023-01-31
    清单 技术 Django
  • 怎么简单快速理解web前端技术
    这篇文章主要讲解了“怎么简单快速理解web前端技术”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么简单快速理解web前端技术”吧!1.什么是web前端?w...
    99+
    2024-04-02
  • Web开发的十种优秀前端技术
    1. HTML/CSS:HTML用于构建网页的结构,CSS用于网页的样式设计。2. JavaScript:用于实现网页的交互功能和动...
    99+
    2023-09-22
    前端技术
  • Web开发技术AngularJS、ReactJS与VueJS有什么特点
    本文小编为大家详细介绍“Web开发技术AngularJS、ReactJS与VueJS有什么特点”,内容详细,步骤清晰,细节处理妥当,希望这篇“Web开发技术AngularJS、ReactJS与VueJS有什...
    99+
    2024-04-02
  • Web开发必须掌握的三个技术是什么
    这篇文章主要介绍“Web开发必须掌握的三个技术是什么”,在日常操作中,相信很多人在Web开发必须掌握的三个技术是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Web开发必...
    99+
    2024-04-02
  • Web开发的基本概念和技术有哪些
    本篇内容介绍了“Web开发的基本概念和技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!A — AJ...
    99+
    2024-04-02
  • Canvas技术开创Web画面未来发展方向
    面向未来的Canvas技术,引领Web画面发展趋势,需要具体代码示例 随着互联网的迅速发展,Web画面技术也在不断进步。其中,HTML5的Canvas技术成为了开发者们热衷的领域。Canvas是HTML5中的一项新技术,它允许开...
    99+
    2024-01-17
    Canvas技术 Web画面 未来发展
  • 一般Web前端开发要学什么 如何掌握Web前端技术
    一般Web前端开发要学什么?如何掌握Web前端技术?越来越多的行业巨头不断向Web前端示好,除苹果、微软、黑莓之外,谷歌的Youtube已部分使用Web前端。Chrome浏览器宣布全面支持Web前端;Facebook则不遗余力地为Web前端...
    99+
    2023-06-03
  • 怎么用Python进行web开发
    本篇内容主要讲解“怎么用Python进行web开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python进行web开发”吧!Python 开发是一种简单易学,功能强大的解释型编程语言,...
    99+
    2023-06-17
  • Python开发者必看:二维码技术全解析!
    二维码技术已经成为了现代社会中不可或缺的一部分。它可以在商品包装、广告宣传、票据管理等各个领域发挥着重要的作用。本文将为Python开发者全面解析二维码技术,帮助开发者更好地应用二维码技术。 一、二维码基础知识 二维码(QR Code)是...
    99+
    2023-09-08
    二维码 开发技术 索引
  • 浅谈:为什么Web前端开发技术如此受欢迎?
    随着互联网的发展,Web前端的应用范围更加广泛,除了网页,Web前端更广泛应用于各类APP中,渗透到我们生活的方方面面。Web前端开发好吗?为什么Web前端开发技术会如此受欢迎?...
    99+
    2023-06-03
  • Python开发技术中,如何高效地管理日志?
    Python作为一种流行的编程语言,被广泛应用于各种领域。在开发过程中,日志是非常重要的一部分,它可以帮助我们追踪程序的运行状况,定位问题所在。在本文中,我们将介绍如何在Python开发中高效地管理日志。 一、Python日志的基本概念 在...
    99+
    2023-10-13
    日志 开发技术 二维码
  • web开发中密码加密存储技术有哪些
    这篇文章主要介绍“web开发中密码加密存储技术有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“web开发中密码加密存储技术有哪些”文章能帮助大家解决问题。从最早的明文保存密码,到md5 sha1...
    99+
    2023-06-26
  • 你知道吗?Python和Django是Linux上最受欢迎的Web开发技术!
    Python和Django是Web开发领域中非常受欢迎的技术。Linux作为一个流行的操作系统,也成为了Python和Django的主要开发平台之一。在本文中,我们将探讨Python和Django如何在Linux上成为最受欢迎的Web开发技...
    99+
    2023-06-17
    linux django 开发技术
  • Python web开发框架Pyramid怎么用
    要使用Python web开发框架Pyramid,你需要按照以下步骤进行操作: 安装Pyramid:使用pip命令安装Pyram...
    99+
    2023-10-23
    Python Pyramid
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作