Web-浅谈用Python进行Web开发

30次阅读

共计 1922 个字符,预计需要花费 5 分钟才能阅读完成。

Web | 浅谈用 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 '<h1>Hello World!</h1>'

上面的这个函数就是 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 '<h1>Home</h1>'

@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 '<h3>Hello, admin!</h3>'
    return '<h3>Bad username or password.</h3>'

if __name__ == '__main__':
    app.run()

有了这些基本的认识,我们就已经能够用 Python 进行 Web 开发了。当然,本文所谈及的,只是用 Python 进行 Web 开发最入门的知识,若要深入下去,还有许多东西需要学习,如数据库管理、自定义 Web 框架等。今天我们暂时谈到这里,关于这个话题,我还会继续跟进。
之前的文章的标题是“浅谈用 Python 进行 Web 前端开发”,现已修改,原因是用 Flask 框架进行的其实是 Web 后端开发。

Web 前端开发如上图所示,主要用到的还是 html, css 和 JavaScript 及相关工具。这些语言可以在以下网站学习。这些网站我都用过,内容很不错:

w3school
廖雪峰的官方网站 

欢迎关注我的号

正文完
 0