美文网首页
python 使用bottle快速搭建网站

python 使用bottle快速搭建网站

作者: 510bb14393e1 | 来源:发表于2022-09-29 15:44 被阅读0次

    bottle是一个轻量级的Web框架,此框架只由一个 bottle.py 文件构成,不依赖任何第三方模块。
    1.模块安装

    pip install bottle
    

    2.运行下面的代码,然后地址栏输入127.0.0.1:8080这样一个小型web项目就搭建好了

    from bottle import route, run
    
    @route('/') # 默认为get请求
    def hello():
        return "Today is a beautiful day"  
    
    run(host='localhost', port=8080, debug=True)   #开启服务
    

    运行结果


    123.png

    3.使用二级域名

    #二级域名
    @route('/hello')
    def hello():
        return "您正在使用二级域名访问"  
    

    运行效果


    image.png

    4.使用POST请求

    #使用POST请求 GET PUT 改动 method参数即可
    @route('/post',method="POST")
    def hello():
        return "您正在使用POST"  
    

    5.模板一

    from bottle import template
    #模板一
    @route('/tmp')
    def hello():
        data = '数据'
        return template("<h1>模板一 {{name}}</h>",name = data)  
    

    运行效果


    image.png

    6.模板二 引用html文件,在同目录下创建a.html

    #模板二
    @route('/tmp2')
    def hello():
        data = '我来自模板二数据'
        return template("a.html",name = data)  
    

    a.html文件代码

    <html>
    <title>模板二</title>
    <body>
    {{name}}
    </body>
    </html>
    

    运行效果


    image.png

    7.模板三 html里加入代码

    #模板三
    @route('/tmp3')
    def hello():
        data = '我来自模板二数据'
        data1 = ['小明','小红','小黑']
        return template("a.html",name = data, data = data1)  
    

    a.html文件代码

    <html>
    <title>模板三</title>
    <body>
    {{name}}
    
    </br>
    %import json
    %for i in range(0,len(data)):
            {{data[i]}}</br>
    %end
    </body>
    </html>
    

    运行效果


    image.png

    8.HTTP错误和重定向

    from bottle import error,abort,redirect
    @error(404)
    def miss(code):
        #错误页面,一般来说,可以在网站制定一个404的HTML页面,然后用return template('404')去访问404这个页面
        return '没找到页面!'
    @route('/error')
    def nofound():
        #引发404错误
        abort(404)
    @route('/')
    def index():
        return '这里是首页'
    @route('/page')
    def page():
        #当访问/page的时候,重新跳转到首页
        redirect('/')
    @error(500)
    def err(code):
        return "系统出错"
    

    9.静态文件映射 (文件预览,下载功能)

    # 静态文件映射,static_file()函数用于响应静态文件 的请求
    @route('/static/<filename:path>')
    def login(filename):
        return static_file(filename,root=os.getcwd())
    

    10.文件上传

    #文件上传
    from bottle import request
    @route('/upload',method='POST')
    def login():
          data = request.files.file
          fileName = data.filename
          data.save(os.getcwd()+"\\"+fileName,overwrite = True)
    

    a.html页面代码

    <html>
    <title>模板二</title>
    <body>
    模板二</br>
    {{name}}
    <hr>
    模板三
    </br>
     %import json
    %for i in range(0,len(data)):
            {{data[i]}}</br>
    %end
    <hr>
    上传文件
    <form action="/upload" method="PSOT" enctype="multipart/form-data">
    <input type="file" name="data" class="file-upload" onchange ="uploadFile(this,1)"/>
    </form>
    
    </body>
    <script>
    function uploadFile(obj, type) {
       var fileObj = obj.files[0];  // js 获取文件对象 
        var FileController = "http://"+window.location.host+"/upload"; // 接收上传文件的后台地址 
        // FormData 对象 
        var form = new FormData();
        form.append("author", "hooyes");
        // 可以增加表单数据 
        form.append("file", fileObj); // 文件对象 
        // XMLHttpRequest 对象 
        var xhr = new XMLHttpRequest();
        xhr.open("post", FileController, true);
        xhr.onload = function() { // 
          alert("上传完成!");
        };
       // xhr.upload.addEventListener("progress", progressFunction, false);
        xhr.send(form);
    }
    </script>
    </html>
    

    11.GET 和 POST 取值方式

    #GET POST 取值方式
    # name = request.query.name
    # name = request.forms.get("name")
    

    12.cookie

    # 设置cookie
    response.set_cookie("name",username, secret= 'some-secret-key')  
    # 获取cookie
    request.get_cookie("name", secret= 'some-secret-key')  
    

    13.数据库可以使用sqlite3
    python3 使用sqlite3数据库 - 简书 (jianshu.com)

    相关文章

      网友评论

          本文标题:python 使用bottle快速搭建网站

          本文链接:https://www.haomeiwen.com/subject/ewtkartx.html