zoukankan      html  css  js  c++  java
  • python实现简单http服务器

    flask是python的web框架,虽然简单,功能很强大

    #!flask/bin/python
    from flask import Flask, redirect, url_for, request, render_template, make_response
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        return "Hello, World!"
    
    
    # 映射/hello
    @app.route('/doSync')
    def index():
        path = request.args.get("path")
        return path
    
    
    # 动态URL
    @app.route('/hello/<name>')
    def hello_name(name):
        return 'Hello %s!' % name
    
    
    @app.route('/blog/<int:postID>')
    def show_blog(postID):
        return 'Blog Number %d' % postID
    
    
    @app.route('/rev/<float:revNo>')
    def revision(revNo):
        return 'Revision Number %f' % revNo
    
    
    @app.route('/admin')
    def hello_admin():
        return 'Hello Admin'
    
    
    @app.route('/guest/<guest>')
    def hello_guest(guest):
        return 'Hello %s as Guest' % guest
    
    
    # 请求转发
    @app.route('/user/<name>')
    def hello_user(name):
        if name == 'admin':
            return redirect(url_for('hello_admin'))
        else:
            return redirect(url_for('hello_guest', guest=name))
    
    
    # post方法
    @app.route('/login', methods=['POST', 'GET'])
    def login():
        if request.method == 'POST':
            user = request.form['nm']
            return redirect(url_for('success', name=user))
        else:
            user = request.args.get('nm')
            return redirect(url_for('success', name=user))
    
    
    # 返回HTML网页
    @app.route('/')
    def student():
        return render_template('student.html')
    
    
    @app.route('/result', methods=['POST', 'GET'])
    def result():
        if request.method == 'POST':
            result = request.form
            return render_template("result.html", result=result)
    
    
    @app.route("/set_cookies")
    def set_cookie():
        resp = make_response("success")
        resp.set_cookie("w3cshool", "w3cshool", max_age=3600)
        return resp
    
    
    # 处理cookie
    @app.route("/get_cookies")
    def get_cookie():
        cookie_1 = request.cookies.get("w3cshool")  # 获取名字为Itcast_1对应cookie的值
        return cookie_1
    
    
    @app.route("/delete_cookies")
    def delete_cookie():
        resp = make_response("del success")
        resp.delete_cookie("w3cshool")
    
        return resp
    
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', debug=True)

    python3 script.py即可启动

    如果生产环境还是建议使用Nginx

  • 相关阅读:
    RSA私钥加密研究
    贪吃蛇 WPF
    随手写 --- 贪吃蛇
    canvas总结:线段宽度与像素边界
    canvas总结:元素大小与绘图表面大小
    【原】YUI Test自动化测试实例详解
    【译】Optimize for mobile-移动端优化
    【原】从一个bug浅谈YUI3组件的资源加载
    【译】Optimize caching-缓存优化
    【原】YUI3:js加载过程及时序问题
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/14951072.html
Copyright © 2011-2022 走看看