Web 开发学习笔记(1) --- 搭建你的第一个 Web Server

简介

Flask 是一个轻量级的 Web 框架, 如果要学习 Web 开发, Flask 非常适合作为我们学习的起点.

通过接下来的这一些列的博客, 我们将学习如何利用 Flask 以及其他工具, 搭建一个简单的网站.

We'll build a web application from scratch. Have fun :)


开发环境

  • Ubuntu 16.04

    Python 3.5

    Flask 1.0.2

  • 命令如下


    sudo apt-get upgrade
    sudo apt-get install python3-setuptools
    sudo apt-get install python3-dev
    sudo apt-get install python3-pip
    sudo pip3 install pip --upgrade
    sudo pip3 install flask


第一个 server

  • 首先我们创建一个文件夹 webapp, 并在其中新建一个 server.py 文件


    mkdir ~/webapp
    cd ~/webapp
    touch server.py
  • 接着, 我们打开 server.py, 按照 Flask Quickstart 的示例, 开始编写第一个 server


    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/', methods=['GET'])
    # methods 默认是 GET 因此可以简写为如下形式
    # @app.route('/')
    def hello():
        return 'Hello'
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8080, debug=True)

    保存文件后, 在 Terminal 中输入如下命令, 即可运行 webapp. 我们在浏览器中输入 http://server_ip:8080 即可访问网站, 页面的内容就是 Hello


    python3 server.py


编写 IndexHandler

  • 在上一节中, 我们使用了 @ decorator 来指定某个路由对应的处理函数, 这样的写法非常方便. 同时, 我们也可以编写我们自己的 Handler 来处理各个不同的页面(路径). 比如, 对于首页 Index, 即 http://server_ip:8080/, 我们可以编写一个 class IndexHandler, 注意这是一个 MethodView 的子类, 也就是说这是一个 View Handler


    from flask import Flask
    from flask.views import MethodView
    app = Flask(__name__)
    
    class IndexHandler(MethodView):
        def __init__(self, name):
            print(name)
    
        def get(self):
            return 'It is a GET request'
    
        def post(self):
            return 'It is a POST request'
    
    if __name__ == '__main__':
        app.add_url_rule('/', view_func=IndexHandler.as_view('index'))
        app.run(port=8080, host='0.0.0.0', debug=True)

    根据 flask docs, 传给 as_view() 的参数 name 会转发给构造函数, 我们暂时用不到这个参数 name , 但是为了保持命名的一致性, 我们将其设置为 index


  • 保存文件后, 在 Terminal 中输入如下命令, 即可运行 webapp. 我们在浏览器中输入 http://server_ip:8080 即可访问网站, 页面的内容是 It is a GET request


    python3 server.py


参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyWebServer是一款专业的轻量级WEB服务器软件。软件具有高性能、易用、小巧、绿色等特点,是用户快速建站及个人HTTP文件服务器的难得工具。软件功能强大,可以实现包HTTP/1.1、断点续传、大文件下载、正则表达式URL重写、虚拟目录、HTTP反向代理等,可通过ISAPI接口、FastCGI接口实现执行服务器脚本等诸多功能。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,轻轻松松完成日常用户快速建站及个人HTTP文件服务器功能,真正做到简单全面实用。是用户实现用户快速建站及个人HTTP文件服务器功能的好帮手。 MyWebServer使用说明 使用FastCGI时,在映射设置中将映射模块设置为启动FastCGI的命令,且命令行中必须包含IP:port格式(如:127.0.0.1:8988)的服务器信息,当不需要WEB服务器启动FastCGI时,命令行中填入IP:port格式的FastCGI服务器信息即可。 如果使用ISAPI接口,指定ISAPI的DLL文件即可。 注(本服务器不集成任何动态脚本支持,要使用请自行安装):asp支持可安装IASP(该软件要求安装java运行环境)通过isapi接口实现;PHP通过isapi和FastCGI接口均可(isapi方式建议使用PHP 5.2,因为5.3以上版不再提供ISAPI支持);asp.net支持可安装mono然后通过FasctCGI接口实现。上述脚本已测试过可以运行。 URL重写命令(使用基于VBScript的正则表达式): ifsve 如果匹配指定的服务器变量则往下执行,否则执行下条规则之后的规则。(支持HTTP_HOST REMOTE_ADDR HTTP_REFERER URL四个服务器变量) rewrite 如果匹配URL 则执行重写后面URL操作,可选命令参数: P 执行反向代理; R 执行重定向; L 最后一条规则; D 禁止URL并返回HTTP状态码 例如:rewrite ^/test.rar /web/test.rar L sethd 修改反向代理时发送的HTTP头值 格式为 sethd=头名称:头值,头名称区分大小写。 小技巧:通过URL重写可让WEB服务器变成一台HTTP代理服务器(代理上网),服务端口就是代理端口,重写规则如下: rewrite ^(http:.*) $1 P MyWebServer v3.6.22  更新内容 修正HTTP代理和HTTPS等若干问题 MyWebServer 截图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值