Web | 浅谈用Python进行Web开发

智数玄铁引
• 阅读 2609

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
廖雪峰的官方网站

欢迎关注我的号

Web | 浅谈用Python进行Web开发

点赞
收藏
评论区
推荐文章
粥白 粥白
4年前
全网最全python学习路线图,让学习不迷路
学习Python有一段时间了,最近也是在不断的整理Python相关的基础知识和学习一些新的知识,想来分享给大家。我刚开始接触Python时,和大多数初学者一样不知道从那里开始学习python,我也在网上找了许多python相关的资料来学习,但是资料多也不见得就好,因为不知道从哪里开始下手,走了许多弯路。后面我就整理了一套对初学者来说学习python能很快上手
浅梦一笑 浅梦一笑
4年前
怎么操作能使Python代码运行起来速度飞快?
Python是开发人员当中流行的编程语言之一。它应用广泛,无论是Web开发还是机器学习。Python大受欢迎的原因有很多,比如社区支持、出色的库、广泛用于机器学习和大数据以及简单的语法。尽管有这么多优点,Python还是有一个缺点:速度慢。作为一种解释性语言,Python的速度不如其他编程语言。不过,我们可以用几个技巧来克服这个问题。本文将分享几个Pytho
浅梦一笑 浅梦一笑
4年前
小白学习python该往哪方面走小白必看
整理了Python的7大就业方向,希望大家能找到适合自己的,然后学习下去,完成人生的目标。1、Web开发(Python后端)Python有很多优秀的Web开发框架,如Flask、Django、Bootstar等,可以帮助你快速搭建一个网站。当需要一个新功能时,用Python只需添加几行代码即可,这受到了很多初创型公司的一致欢迎。像知乎、豆瓣、小米这样的大厂,
可莉 可莉
4年前
13个Python web框架比较
Python程序员有很多很好的选择来创建Web应用程序和API;Django,Weppy,Bottle和Flask引领潮流。如果正在开发一个Web应用程序并且已经选择使用Python作为构建它的语言,那么这是一个明智的选择。Python的开发成熟度,强大的库以及广泛的实际应用使其成为Web开发的必需。现在是困难的部分:从众多可用的Pythonweb
Stella981 Stella981
4年前
Python在网页上展示表格的简单方法
!(https://oscimg.oschina.net/oscnet/22596eed3e2a4708acc1bc8a22f8588d.jpg)Python是当今最热门的编程语言Pandas是Python下最热门的数据处理与数据分析的库Flask是Python下方便简洁的Web开发框架
Stella981 Stella981
4年前
Python爬虫:一些常用的爬虫技巧总结
 用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。1、基本抓取网页get方法import urllib2
Stella981 Stella981
4年前
Asp.Net Core和Django如何选择
一、前言最近经常听说“人生苦短,我选python”这句话,为什么python拥有如此多的粉丝,她和c、java静态语言有哪些区别和优略呢?本篇将对python、c主流的web框架Django和Asp.NetCore做一些分析,带给大家更多的技术认知。什么是DjangoDjango是使用python语言开发的一套web框架,
Stella981 Stella981
4年前
Python web开发从入门到放弃
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤无为之用方为大用。!(https://oscimg.oschina.net/oscnet/f64430c27950bcccce040bb032ea65e73a5.jpg)越来越多的同学知道我在做
可莉 可莉
4年前
10w字!Django+Flask+经典Python数据分析合集
大伙可能都知道Python可以应用在很多方面,比如Web开发,小编我之前在学习这一块知识的时候,也苦于查找系统的资料。对于成熟的框架比如Flask、Django,如果有一套完整的内容体悉加上实际案例,学习起来还是很快的。最近我发现了一个优质的原创博主,公众号里写了很多原创的Django系列和Flask系列的文章。恰好人