bottle中文文档
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中文文档相关推荐
- Bottle 中文文档
译者: smallfish (smallfish.xy@gmail.com) 更新日期: 2009-09-25 原文地址: http://bottle.paws.de/page/docs (已失效) ...
- PyTorch官方中文文档:torch.optim 优化器参数
内容预览: step(closure) 进行单次优化 (参数更新). 参数: closure (callable) –...~ 参数: params (iterable) – 待优化参数的iterab ...
- golang中文文档_Golang 标准库 限流器 time/rate 设计与实现
限流器是后台服务中十分重要的组件,在实际的业务场景中使用居多,其设计在微服务.网关.和一些后台服务中会经常遇到.限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现 ...
- springboot中文文档_登顶 Github 的 Spring Boot 仓库!艿艿写的最肝系列
源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 My ...
- Apache Spark 2.2.0 中文文档 翻译活动
为什么80%的码农都做不了架构师?>>> Spark 2.2.0 已然发布(2017-07-11 发布) 5 天了,更新了一些新套路吧! 此版本从 Structured Str ...
- Python爱好者周知:Scikit-Learn中文文档正式发布
整理 | 费棋 出品 | AI科技大本营(公众号ID:rgznai100) 近日,Scikit-Learn 中文文档已由开源组织 ApacheCN 完成校对.该中文文档依然包含了 Scikit-Lea ...
- GitHub 中文文档正式发布
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 中国作为全球最大的人口大国,所属开发者在 GitHub 上的占比自 ...
- 推荐:Webpack2入门到深入的中文文档
2019独角兽企业重金招聘Python工程师标准>>> 最近看了一本不错的<<webpack2中文文档>>的PDF,对比于wepack2官网(https:// ...
- matlab中文文档_Linux下Matlab安装
如果觉得文章好看,欢迎点赞.同时欢迎关注微信公众号:氷泠之路. 引言 抱歉国庆由于各种原因一直没空更新文章,啊啊啊啊啊.... 因为在忙各种各样的事情,都怪女朋友,另外也更新了"装备&quo ...
最新文章
- 互联网协议 — TCP — 重传机制(可靠传输保障)
- python有什么作用-Python中的闭包到底有什么用
- 精雕道路怎么遍弧形_防水施工怎么做?专业防水施工注意事项
- JQuery简介选择器
- 2019-02-25-算法-进化
- JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别
- qt中文显示乱码问题
- MyBatis简介及下载
- Ambiguous mapping. Cannot map ‘fruitawcController‘ method
- MSDC 4.3 接口规范(8)
- 星巴克男子的豆瓣网创业故事
- Unity iPhone开发入门
- Grafana更改主题背景
- Java5、8、9章复习总结
- Excel if else or and 怎么使用(陕西省身份证号码区域划分)
- mysql中部分语句
- 什么是电压跟随器?电压跟随器计算方法讲解
- ffmpeg截取指定视频中的一段视频
- android 代码重启app
- 【ArcGIS教程】专题图制作-人口密度分布图——人口密度分析