bottle文档
bottle文档1
Jinja2 模板用法

1.基本框架

debug : 显示错误
reloader:代码更新后自动加载新代码

from bottle import route, run, jinja2_template
@route('/')
def index():return jinja2_template('templates/index.html')
run(server='tornado', host='127.0.0.1', port='8082', reloader=True)
from bottle import Bottle, run, routeweb = Bottle()
@web.route('/')
def index():return 'I am bottle!'
run(web)    # 默认端口为8080

2.URL装饰器

@route('/')
@route('/', method=['GET', 'POST'])if request.method == 'POST':return '这是一个post请求'

动态路由基础:将请求参数放入URL路径中

直接获取字符串参数:

URL形式1:/user/
URL形式2:/user//
访问URL: /user/tom

http://127.0.0.1/index/tom
@route('/index/<name>')
def index(name):print(name)return 'I am bottle!'
run(host='127.0.0.1', port=80, debug=True, reloader=True)

3. 返回静态文件

强制下载:download=True
重命名下载:download=‘6.txt’

http://127.0.0.1/index/root.txt

@route('/index/<filename>')
def index(filename):print(filename)return static_file(filename, root='', download='6.txt')
run(host='127.0.0.1', port=80, debug=True, reloader=True)

4. URL转向

from bottle import run, route, error, abort, redirect
@route('/zhuanxiang')
def index():return redirect('/')@route('/about')
def index():abort(404, 'err 404')   # 转向404页面

5. 404 错误页面

from bottle import run, route, error
@error(404)
def err(err):return '亲,您要的页面丢失了!!!'

6. 获取GET、POST请求的参数

(1)GET 参数提供方法

在URL 链接最后添加“?名称=值&名称=值…”,可手工输入提供、也可通过超链接提供或表单形式。
例如:http://127.0.0.1/?key=520&username=1314&sign=666

2.获取提交的参数

提交数据查看 jquery 提交数据 ajax

nickname = request.POST.getunicode('money')
print(money)

3.返回json格式

return json.dumps({'data': 403})

登录

@route('/login', method=['GET','POST'])
def login(db):if request.method == 'GET':if request.get_cookie('SchoolShop'):userinfo = request.get_cookie('SchoolShop', secret='safe')info = json.loads(userinfo)uname = info['username']psd = info['password']return redirect('/my')if request.method == 'POST':username = request.POST.getunicode('username')psd = request.POST.getunicode('password')print('{}  {}',format(username, psd))if (username == '' and psd == ''):return json.dumps({'data': 401})  # 请求需要对用户身份进行认证# 从数据库 查询username的密码dbuser_psd = db.query(Users).filter_by(username=username).first().passwordprint("账号为:" + username)print("db密码为:" + dbuser_psd + "  输入密码:" + psd)# 判断密码是否正确if dbuser_psd == psd:try:# 查询用户昵称nickname = db.query(Users).filter_by(username=username).first().nicknameprint("用户昵称:" + nickname)session_val = json.dumps({'username': username, 'password': psd}).encode('utf-8')# 返回cookieresponse.set_cookie("SchoolShop", session_val, secret='safe', max_age=80000)# 返回登录成功return json.dumps({'data': 200})except:return json.dumps({'data': 403})else:# 账号或密码错误return json.dumps({'data': 403})return jinja2_template('templates/login.html')

验证是否登录 使用cookie

@route('/addressAdd', method=['GET','POST'])
def addressAdd(db):is_login = 0uname = ''try:if request.get_cookie('SchoolShop'):userinfo = request.get_cookie('SchoolShop', secret='safe')info = json.loads(userinfo)uname = info['username']psd = info['password']try:# username = db.query(Users).filter_by(username=uname).first().usernamepassword = db.query(Users).filter_by(username=uname).first().passwordif (password == psd):is_login = 1else:# print('cookie失效')return redirect('/')except:# print('数据库查询错误')return redirect('/')else:return redirect('/login')if (is_login == 1):if request.method == 'GET':return jinja2_template('templates/addressAdd.html')# 提交用户新增的地址if request.method == 'POST':receiver = request.POST.getunicode('receiver')phone = request.POST.getunicode('phone')print('{} {} {}'.format(receiver, phone, pos))except:return redirect('/login')return redirect('/')

bottle中文文档相关推荐

  1. Bottle 中文文档

    译者: smallfish (smallfish.xy@gmail.com) 更新日期: 2009-09-25 原文地址: http://bottle.paws.de/page/docs (已失效) ...

  2. PyTorch官方中文文档:torch.optim 优化器参数

    内容预览: step(closure) 进行单次优化 (参数更新). 参数: closure (callable) –...~ 参数: params (iterable) – 待优化参数的iterab ...

  3. golang中文文档_Golang 标准库 限流器 time/rate 设计与实现

    限流器是后台服务中十分重要的组件,在实际的业务场景中使用居多,其设计在微服务.网关.和一些后台服务中会经常遇到.限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现 ...

  4. springboot中文文档_登顶 Github 的 Spring Boot 仓库!艿艿写的最肝系列

    源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 My ...

  5. Apache Spark 2.2.0 中文文档 翻译活动

    为什么80%的码农都做不了架构师?>>>    Spark 2.2.0 已然发布(2017-07-11 发布) 5 天了,更新了一些新套路吧! 此版本从 Structured Str ...

  6. Python爱好者周知:Scikit-Learn中文文档正式发布

    整理 | 费棋 出品 | AI科技大本营(公众号ID:rgznai100) 近日,Scikit-Learn 中文文档已由开源组织 ApacheCN 完成校对.该中文文档依然包含了 Scikit-Lea ...

  7. GitHub 中文文档正式发布

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 中国作为全球最大的人口大国,所属开发者在 GitHub 上的占比自 ...

  8. 推荐:Webpack2入门到深入的中文文档

    2019独角兽企业重金招聘Python工程师标准>>> 最近看了一本不错的<<webpack2中文文档>>的PDF,对比于wepack2官网(https:// ...

  9. matlab中文文档_Linux下Matlab安装

    如果觉得文章好看,欢迎点赞.同时欢迎关注微信公众号:氷泠之路. 引言 抱歉国庆由于各种原因一直没空更新文章,啊啊啊啊啊.... 因为在忙各种各样的事情,都怪女朋友,另外也更新了"装备&quo ...

最新文章

  1. 互联网协议 — TCP — 重传机制(可靠传输保障)
  2. python有什么作用-Python中的闭包到底有什么用
  3. 精雕道路怎么遍弧形_防水施工怎么做?专业防水施工注意事项
  4. JQuery简介选择器
  5. 2019-02-25-算法-进化
  6. JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别
  7. qt中文显示乱码问题
  8. MyBatis简介及下载
  9. Ambiguous mapping. Cannot map ‘fruitawcController‘ method
  10. MSDC 4.3 接口规范(8)
  11. 星巴克男子的豆瓣网创业故事
  12. Unity iPhone开发入门
  13. Grafana更改主题背景
  14. Java5、8、9章复习总结
  15. Excel if else or and 怎么使用(陕西省身份证号码区域划分)
  16. mysql中部分语句
  17. 什么是电压跟随器?电压跟随器计算方法讲解
  18. ffmpeg截取指定视频中的一段视频
  19. android 代码重启app
  20. 【ArcGIS教程】专题图制作-人口密度分布图——人口密度分析

热门文章

  1. 如何解决div里面img图片下方有空白的问题?
  2. thinkphp-volist3
  3. 虚幻填坑004:减少starter content占用空间,只保留使用的assets
  4. UITextField与UITextView的区别
  5. 【神奇的函数式编程语言的独特功能】Lisp 的运行期修改、编译代码,并替换当前运行版本的试验...
  6. ASP.NET中处理HTTP请求的原理 (转)
  7. Y分钟学clojure
  8. 三层之抽象工厂加反射实例
  9. Apache Mina开发手册
  10. for 循环迭代变量