您好,登录后才能下订单哦!
这期内容当中小编将会给大家带来有关Python如何进行Web开发,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Web开发这样一个大概念,对小白来说,想学也不知道从哪下手。当今Web开发的一大热门语言是Python(最大的当然还是PHP),而恰好平常用Python也多,从Python入手,学习Web后端开发,也许要容易些。
1、 WSGI, 即Web Server Gateway Interface
Web开发有两大基础:
HTTP协议
HTML语言
HTTP协议在Web领域的重要性不必赘述,这样一个重要的概念,如果交给开发者去实现,且不谈编程,单是看懂庞大的协议,就会花掉大量的时间。好在我们意识到,实现协议的工作,显然是可重复利用的。可重复利用的HTTP协议实现,被封装在Python库里,就有了Python进行Web开发最基本的一个库:WSGI(Web Server Gateway Interface)。WSGI为开发者封装了HTTP协议的实现,将网络通信抽象为接收数据报和发送数据报的简单函数。对HTTP协议有基本了解的读者可以看一看下面的例子。
def application (environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h2>Hello World!</h2>'
上面的这个函数就是WSGI规定的函数形式,接收两个参数environ, start_response,返回header和body。从这个例子我们可以看出,WSGI已经对开发者隐藏了HTTP协议的发送、接收过程,而开发者只需要管好自己的Web程序要做的事情,可谓大大便捷了开发人员的工作。
2 Web框架
WSGI是重要的Web开发库,使开发者不再被HTTP协议困扰,但仅仅有WSGI还不够,在实际开发中,我们希望有一套Web框架,能为开发者做更多的事情。开发者想要框架能做更多事情,想要框架能够处理不同URL的访问,如对同一ip不同目录的访问;想要框架能够处理不同形式的访问,如GET, POST等。
这就说到了用Python进行Web开发的利器:Web框架。Web框架提供了Web开发更高层次的抽象,开发者可以把更少的精力花在各种响应的区分上,而把主要的精力用在响应的内容上。以主流的Python-Web框架Flask为例,开发者可以为每种URL,每个访问方式定义单独的函数。下面的代码就是一个简单的Flask框架下的Web程序。
from flask import Flask from flask import request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return '<h2>Home</h2>' @app.route('/signin', methods=['GET']) def signin_form(): return '''<form action="/signin" method="post"> <p><input name="username"></p> <p><input name="password" type="password"></p> <p><button type="submit">Sign In</button></p> </form>''' @app.route('/signin', methods=['POST']) def signin(): # 需要从request对象读取表单内容: if request.form['username']=='admin' and request.form['password']=='password': return '<h4>Hello, admin!</h4>' return '<h4>Bad username or password.</h4>' if __name__ == '__main__': app.run()
有了这些基本的认识,我们就已经能够用Python进行Web开发了。当然,本文所谈及的,只是用Python进行Web开发最入门的知识,若要深入下去,还有许多东西需要学习,如数据库管理、自定义Web框架等。
上述就是小编为大家分享的Python如何进行Web开发了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。