Python之Flask笔记
在这里先说一下最开始所经历的一些错误app=Flask(_name_),当初拼写的时候怎么都报错后来发现此处是两个'_'
配置文件
app.config.from_object(__name__) 在当前文件中查询配置项
app.config.from_envvar('FLASKR_SETTINGS', silent=True) 在文件中查询配置现,其中FLASKR_SETTINGS代表环境变量,silent=True代表Flask不关心该环境变量键值是否存在
@app.route('/')
def index():
return 'This is index'
此处route修饰器把一个函数绑定到一个URL上,@app.route('hello'),这个意思就是http://127.0.0.1/hello
@app.route('/user<username>')
def show_user(username):
return 'My name is %s'%username
此处route中<username>代表一个参数,在地址栏中输入http://127.0.0.1/user/Sky,网页则会返回My name is Sky
from flask import url_for
@app.route('/login')
def index():return '这是一个新的url'
print url_for('login')
此处url_for()来针对一个特定的函数构建一个 URL,在时运行则会print出所构造好的地址地址栏中输入http://127.0.0.1/login即可访问
为什么你要构建 URLs 而不是在模版中硬编码?这里有三个好的理由:
1. 反向构建通常比硬编码更具备描述性。更重要的是,它允许你一次性修改 URL, 而不是到处找 URL 修改。
2.构建 URL 能够显式地处理特殊字符和Unicode转义,因此你不必去处理这些。
3.如果你的应用不在 URL 根目录下(比如,在 /myapplication 而不在 /),url_for()将会适当地替你处理好。
放置静态文件时给静态文件生成URL
url_for('static',filename='style.css')
这个文件是应该存储在文件系统上的static/style.css
渲染文件
from flask import render_template
@app.route('/hello/')
@app.route('/hello<name>')
def hello(name=None):
return render_template('hello.html',name=name)
此处将会从templates处查找模版文件hello.html
请求对象
from flask import request
request.method==['GET','POST']
文件上传
在HTML表单中设置属性enctype="multipart/form-data",否则浏览器不会传送文件
from flask import request
@app.route('/upload',methods=['GET','POST'])
def upload_file():
if request.method=='POST'
f=request.files['file']
f.save('/uploads'+secure_filename(f.filename)) 因为客户端的名称可能会被伪造,所以永远不要相信,传递给secure_filename来打到效果
COOKIE操作
读取cookie:
username=request.cookies.get('username')
存储cookie:
from flask import make_response,render_template
loadc=make_response(render_template())
loadc.set_cookie('usernmae','the username')
重定向
错误重定向
如果出现出错的话可以定义一个装饰器
@app.errorhandler(404) 代表没有该文件
def page_not_found(error):
return render_tamplater('**.html'),404 此处404是在render_tamplate调用,告诉Flask该页的错误代码是404
未完待续...
Python之Flask笔记的更多相关文章
- 【Python】Flask系列-URL和视图笔记
1.学习目标 熟悉Flask相关知识. 熟悉web开发流程. 能独立开发Flask项目. 2.环境配置 Python虚拟环境安装 因为python的框架更新迭代太快了,有时候需要在电脑上存在一个框架的 ...
- Python Click 学习笔记(转)
原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...
- Flask笔记1
Flask笔记 首先明确一下,要运行一个动态网页,我们需要 一个 Web 服务器来监听并响应请求,如果请求的是静态文件它就直接将其返回,如果是动态 url 它就将请求转交给 Web 应用. 一个 We ...
- 使用python的Flask实现一个RESTful API服务器端[翻译]
最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文将会使用python的Flask框架轻松实现一个RESTful的服务 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 《简明python教程》笔记一
读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info 安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...
- python 正则使用笔记
python正则使用笔记 def remove_br(content): """去除两边换行符""" content = content.r ...
- python核心编程--笔记
python核心编程--笔记 的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找pyt ...
- 使用python的Flask实现一个RESTful API服务器端
使用python的Flask实现一个RESTful API服务器端 最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文 ...
随机推荐
- 虚拟机中安装Virtualbox,嵌套的虚拟机不能运行64位系统
https://www.quora.com/Can-I-install-Virtualbox-in-a-virtual-machine Here is a previous question on Q ...
- Python textwrap模块(文本包装和填充)
textwrap提供函数wrap().fill().indent().dedent()和以及TextWrapper类. 通常包装或者填充一两个字符串使用wrap()和fill().其他情况使用Text ...
- 产品经理说| AIOps 让告警变得更智能 (下)
AIOps 人工智能和IT运营支撑 Ops 之间的故事,愈演愈烈,已经成为当今运维圈的热门话题,我打算从2篇文档分享我们在 AIOps 上一些探索和实践.(上篇)主要介绍了为什么事件(告警)处理需要 ...
- SQL Server中如何识别、查找未使用的索引(unused indexes)
在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...
- MS SQL CASE WHEN 的用法
前言 由于经常使用 case when 的2种情况方式,如果=1 则*** 否则 *** 结束.久而久之,都以为只能这么用,都忘记了Case WHEN 的用法. 示例 , ...
- C语音输出前100个回文素数,每行10个,适当对齐
#include<stdio.h> #include<math.h> int ss(long n) { ); ) ; ;i<=sqrt(n);i++) ); ; } lo ...
- Windows 在命令行中将输出内容放到文件中
1.将命令行中输出的内容存储到文件中. 使用重定向符号 “>” 就可以了. 通过 > 可以创建新文件并将内容放到文件中,如果文件存在,则会覆盖. 2.通过 >> 可以向已有的文 ...
- 【PAT】 B1006 换个格式输出整数
超简单题 //直接将各位分开,分别用for循环输出 #include<stdio.h> int main(){ int num; scanf("%d",&num ...
- 解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题
我这里故意放了一个超过100M的文件 后续,git add ,git commit 然后,git push 此时会发现出现了错误.如果,我们再这里直接在文件系统中删除这个大的文件,然后再次提交,会发现 ...
- May 29. 2018 Week 22nd Tuesday
Nothing is more terrible than ignorance in action. 最可怕的事情莫过于无知而行动. In today's digital age, we can ru ...