python 使用bottle快速搭建网站

2022-09-29  本文已影响0人  510bb14393e1

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)

上一篇下一篇

猜你喜欢

热点阅读