python bottle框架

简介:

Bottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块。

Bottle框架大致可以分为以下部分:

路由系统,将不同请求交由指定函数处理

模板系统,将模板中的特殊语法渲染成字符串,值得一说的是Bottle的模板引擎可以任意指定:Bottle内置模板、mako、jinja2、cheetah

公共组件,用于提供处理请求相关的信息,如:表单数据、cookies、请求头等

服务,Bottle默认支持多种基于WSGI的服务

安装

pip install bottle

easy_install bottle

框架基本使用,例:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from bottle import Bottle

root = Bottle()

@root.route('/index/')

def index():

return "Hello World"

root.run(host='localhost', port=8080)

效果:

一、路由系统

路由系统是的url对应指定函数,当用户请求某个url时,就由指定函数处理当前请求,对于Bottle的路由系统可以分为一下几类:

静态路由

动态路由, 正则表达式

请求方法路由, POST、GET、PUT等

二级路由, 分发至其它入口

1、静态路由

@root.route('/index/')

def index():

return "welcome index page"

2、动态路由

输入的URL跟参数

@root.route('/index/')

def index(pagename):

return pagename

输入的参数为数字

@root.route('/index/')

def index(id):

return str(id)

正则表达式

@root.route('/index/')

def index(name):

return name

静态文件

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from bottle import Bottle, static_file

root = Bottle()

@root.route('/index/')

def index(path):

return static_file(path, root='E:\static')

root.run(host='localhost', port=8080)

3、请求方法路由

@root.route('/index/', method='POST')

def index():

return "post"

@root.get('/index/')

def index():

return "get"

@root.post('/index/')

def index():

return "post"

@root.put('/index/')

def index():

return "put"

@root.delete('/index/')

def index():

return "delete"

4、二级路由

index.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from bottle import template, Bottle

from bottle import static_file

root = Bottle()

@root.route('/index/')

def index():

return template('Root {{name}}!', name="wang")

import sub_index01

import sub_index02

root.mount('index01', sub_index01.index01_obj)

root.mount('index02', sub_index02.index02_obj)

root.run(host='localhost', port=8080)

sub_index01.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from bottle import Bottle

index01_obj = Bottle()

@index01_obj.route('/sub_index01/', method='GET')

def index():

return "sub_index01"

sub_index02.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from bottle import Bottle

index02_obj = Bottle()

@index02_obj.route('/sub_index02/', method='GET')

def index():

return "sub_index02"

访问主页

访问sub_index01子应用和sub_index02子应用

python bottle 制作表单_python bottle框架相关推荐

  1. 用HTML制作表单表格能学到什么,Html学习之十七(表格与表单学习--排行版制作)...

    表格与表单01 table{ width: 300px; height: 40px; margin: 100px auto; border-collapse: collapse; } .th2{ fl ...

  2. 什么平台制作表单工具效率高?

    目前,低代码开发平台在很多行业中得到了应用和推广.如果需要制作表单工具,还依然用传统的表单工具来制作表单,效率不仅得不到提升,而且办公自动化发展步伐也将缓慢发展.那么,借助什么样的平台可以让制作表单工 ...

  3. html如何制作一个漂亮的表格?+ 列表制作 + 表单制作(干货!直接收代码)

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 html如何 ...

  4. Axure9制作表单

    第一步,首先拖动一个中继器在面板: 第二步,双击中继器,拖动一个文本和一个输入框: 第三步,还原页面,在右侧样式中,添加几行: 第四步,在样式中,设置间距和布局: 第五步,选择交互页面,选中 文本标签 ...

  5. iReport关于page header制作表单明细模板,textfield与staticText不相容的问题解决

    这个星期上司给了我一个关于使用iReport制作车辆使用明细报表的任务.在毫无使用过这个组件的前提下,我凭着自己贫乏的知识与经验,在网上相关解决方案资料严重缺失的情况下,通过艰苦卓绝的思考与锲而不舍的 ...

  6. 如何扫码填写数据?在线制作表单二维码的方法

    二维码填写表单是现在很常见的一种方式,这种方法对比以前纸质的信息收集,更加的简单快捷,能够有效的提高效率.通过二维码生成器(免费在线二维码生成器-二维码在线制作-音视频二维码在线生成工具-机智熊二维码 ...

  7. python制作考试系统_python测试框架数据生成工具最全资源汇总

    xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...

  8. python flask表单语法_Flask框架如何使用表单

    每个web应用都需要使用表单来采集用户数据.现在让我们使用Flask框架创建一个简单的表单来收集用户的基本信息,例如名称.年龄.邮件.兴趣爱好等,我们将这个模板文件命名为bio_form.html. ...

  9. java_web1:基本标签、form表单、frameset框架标签、CSS样式、javascript、servlet

    前端三剑客: html,css,js(javascript) html: Hyper Text Markup Language:超文本标记语言 针对字体,图片,视频,音频等等进行操作,设置字体颜色,大 ...

最新文章

  1. GitHub使用指南——建立仓库、建立文件夹、上传图片详细教程
  2. 微软宣布加入 OpenJDK,打不过就改变 Java 未来!
  3. python类装饰器详解-python 中的装饰器详解
  4. 怎么用计算机算亩数,怎样用手机测量亩数?
  5. [NOI2012(bzoj2879)(vijos1726)]美食节 (费用流)
  6. C++11 新特性 —— 关键字noexcept
  7. Apache Log4j2远程代码执行漏洞攻击,华为云安全支持检测拦截
  8. 单因素方差分析[转载]
  9. 【kafka】 Error when handling request Name: FetchRequest cannot compare its segment info since it only
  10. 【less-11】基于SQLI的POST字符型SQL注入
  11. ubuntu下JNI之HelloWorld相互传String值
  12. Linux服务器创建及维护记录
  13. 十一、Oracle学习笔记:高级关联查询
  14. 2021测试开发面试题大全及答案(包含测试基础|接口测试|自动化测试...)【289页】
  15. mysql basemapper_BaseMapper和继承
  16. [BZOJ]4699: 树上的最短路 特殊技巧的最短路
  17. ubuntu 操作系统的目录结构
  18. 如何右键菜单添加命令提示符_在右键菜单顶部添加过滤器命令
  19. 复合索引 /多列索引 /联合索引 /组合索引?????
  20. bandit(13-34)

热门文章

  1. 【转】当今在世智商最高的十大天才
  2. 【回眸】Java 若依后台管理系统test接口编写错误
  3. 局域网网站服务器dns设置,实战局域网DNS服务器配置
  4. 【Matlab】 遗传算法求解TSP问题
  5. 什么技术和应用赚钱?
  6. 中国邮路问题的解决(数据结构课程设计)
  7. 利用Anusplin制作降雨数据插值
  8. 电容触摸式操作面板按键方案选型
  9. Low Power Design in SoC Using Arm IP
  10. 为什么它可以和可视化工具tableau相提并论?