Python 学习笔记(基础语法 restful 、 Flask 和 Requests)
input 函数
#!/usr/bin/env python3
name = input("\n\n按下 enter 键后退出。")
print(name)
print() 在 python3 中是一个函数
a = 1
b = 2
c = 3
print(a)
print(b)
print(c)
d= 100.14
print(d)
name = "liwei"
print(name)
print("hello python")
定义变量
a = 10
b = 2
c = a + b
print(a)
print(b)
print(c)
判断语句
score = 80
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
elif score >= 30:
print("不及格")
else:
print("很差劲了")
注意事项:
1、分号的位置
2、每一行都有缩进
3、elif
4、else 后面有分号
循环
for i in range(0,100):
print(i)
循环的扩展(字符格式化)
for i in range(0,10):
print("Hello {0},{1}".format(i,"liwei zhouguang"))
定义函数
def hello():
print("测试方法")
hello()
注意事项:
1、使用 def 定义函数;
2、方法名后面跟括号和冒号;
3、调用方法的时候不要缩进
带有参数的函数
curl (一个 Get 方式的网址地址)
restful 设计理念:表现层状态转移
资源:网络上的具体信息
URI:抽象概念,统一资源标识符
URL:具体概念,统一资源定位器
状态转移:
(1)HTTP 协议是一个无状态的协议
所有的状态都要保存在服务器端。
(2)GET、POST、PUT、DELETE
(3)让我们来看一个 RESTFUL 的请求
curl -X GET (一个 GET 方式的网址)
REST 构架设计 6 原则
1、
2、无状态
3、
4、
5、
6、按需编码
flask 非常容易上手,是一个 python 微型的 web 框架
flask.pocoo.org
中文版本的文档:
http://docs.pythontab.com/flask/flask0.10/api.html
http://docs.jinkan.org/docs/flask/
如果有非常浓厚的兴趣,可以自己查看官网文档进行学习。
扩展的部分:http://flask.pocoo.org/extensions/
编写下面这段代码就可以运行一个小小的服务了,这是一个最最简单的使用 python 写的 python 程序
pycharm 里面要新建 flask 模块才可以。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello liwei!'
if __name__ == '__main__':
app.run()
服务器运行是这样的:
我们使用 curl
工具去访问这个服务,浏览器显示:
以 debug 方式运行这个最最简单的 python 写的 web程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
a = 1
b = 'a'
c = a + b
return 'Hello liwei!'
if __name__ == '__main__':
app.run(debug=True)
此时,浏览器会显示错误信息,如图所示。
flask console lock 这个问题没有解决。
编写一个最最简单的,具有 restful 风格的 URL,是不是觉得和 SpringMVC 的功能是一样的呢?但是 python 简单得多
from flask import Flask
app = Flask(__name__)
@app.route("/index/<user>")
def hello_world(user):
print('你好 %s' % user)
return '%s ,welcome' % user
if __name__ == '__main__':
app.run()
curl -X GET http://127.0.0.1:5000/index/liwei
此时,控制台显示:
四种 http 方法的设置,对比 Spring MVC 是不是特别简单?
from flask import Flask
app = Flask(__name__)
# 我们修改一下路由
@app.route('/index/<user>',methods=['POST','DELETE'])
def hello_world(user):
return 'Hello %s!' % user
if __name__ == '__main__':
app.run(debug=True)
此时,使用浏览器访问 URL 已经不好使了,我们可以通过 postman 或者 curl 这样的工具发送 post 请求。
使用 curl 工具这样访问:
curl -X POST http://127.0.0.1:5000/index/liwei
此时,终端显示:
Chrome 开发者工具介绍
如何使用 Requests 浏览 http 文档。
用 Python 编写,真正的为人类着想。
中文文档地址:
http://cn.python-requests.org/zh_CN/latest/
安装 pip 命令,这个命令相当于 Java 的 Maven、Gradle 工具
切换用户到 root,执行命令 su,输入密码。
然后执行
sudo easy_install pip
就安装好了。
pip install requests
可以安装 requests 模块了。
passwd 可以设置我本机的密码。
使用 requests 这个模块
import requests
r = requests.post("http://127.0.0.1:5000/index/liwei")
r.text
返回的结果是:
接下来,我们在服务端,把客户端的请求信息打印一下:
注意:这里不要写成 requests 了。
很神奇的是,我们发现请求头是 python 的请求头:
127.0.0.1 - - [30/Apr/2017 10:54:21] "POST /index/liwei HTTP/1.1" 200 -
Content-Length: 0
User-Agent: python-requests/2.13.0
Connection: keep-alive
Host: 127.0.0.1:5000
Accept: */*
Accept-Encoding: gzip, deflate
如图所示:
这样很容易被发现是 爬虫的请求头 。
我们可以在客户端设置一个 User-Agent ,进行伪装,代码如下:
import requests
headers = {'User-Agent':"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"}
r = requests.post("http://127.0.0.1:5000/index/liwei",headers=headers)
print type(r.text)
Python 学习笔记(基础语法 restful 、 Flask 和 Requests)的更多相关文章
- Python学习笔记——基础语法篇
一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...
- python学习笔记--基础语法
等待用户输入 #!/usr/bin/python raw_input("\n\nPress the enter key to exit.") 简单的判断 #!/usr/bin/py ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- Python学习笔记——基础篇【第四周】——迭代器&生成器、装饰器、递归、算法、正则表达式
目录 1.迭代器&生成器 2.装饰器 a.基本装饰器 b.多参数装饰器 3.递归 4.算法基础:二分查找.二维数组转换 5.正则表达式 6.常用模块学习 #作业:计算器开发 a.实现加减成熟及 ...
- Python学习①. 基础语法
Python 简介 Python 是一种解释型,面向对象的语言.特点是语法简单,可跨平台 Python 基础语法 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编 ...
- JavaScript学习笔记-基础语法、类型、变量
基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...
- Python 学习笔记---基础篇
1. 简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200 import subprocess cmd="cmd.exe" b ...
- Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作
目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...
- Python学习笔记——基础篇【第五周】——正在表达式(re.match与re.search的区别)
目录 1.正在表达式 2.正则表达式常用5种操作 3.正则表达式实例 4.re.match与re.search的区别 5.json 和 pickle 1.正则表达式 语法: import re # ...
- Python学习笔记——基础篇【第六周】——面向对象
Python之路,Day6 - 面向对象学习 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 同时可参考链接: http:// ...
随机推荐
- maven指定本地jar包
来自 https://blog.csdn.net/zhengxiangwen/article/details/50734565 一.怎么添加jar到本地仓库呢?步骤:1.cmd命令进入该jar包所在路 ...
- [DS+Algo] 004 栈、队列及其代码实现
1. Stack FILO (FirstInLastOut) 的链表结构 在程序编译环境上使用较多 常用操作 push pop peek is_empty size Python 代码示例 class ...
- [19/09/08-星期日] Python的几个概念和语法
一.表达式.语句.程序.函数 1.表达式 就是一个类似于数学公式的东西 ,比如:10 + 5 8 - 4:表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响 如果在交互模式中输入一个表达式,解 ...
- Oracle SQL调优
在多数情况下,Oracle使用索引t来更快地遍历表,优化器主要根据定义的索引来提高性能. 但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种 ...
- 嘉馨学姐又双叒叕来吃包子了 QDUOJ 模拟 尺度法
嘉馨学姐又双叒叕来吃包子了 QDUOJ 模拟 尺度法 点我进入OJ题目详情 题意 给你一串数,让你求长度最长的子串,这个字串满足里面没有重复出现的数字. 解题思路 使用一个标记数组,来标记每个数的第一 ...
- PHP MVC结构系统架构设计
今天研究了下PHP MVC结构,所以决定自己写个简单的MVC,以待以后有空再丰富.至于什么MVC结构,其实就是三个Model,Contraller,View单词的简称,,Model,主要任务就是把数据 ...
- git LF will be replaced by CRLF in hellogit.txt
这个是换行符的问题 参见:https://blog.csdn.net/starry_night9280/article/details/53207928
- Pose &&Get的区别
从一个页面转向另一个页面的请求方式有两种,Post和Get. 如果从原理上来探究他们的区别,涉及到Http传输协议的细节,本文不加探究,只讨论一下表象. 1.Post传输数据时,不需要在URL中显示出 ...
- js/nodejs导入Excel相关
导入示例如下: Excel可设置单元格的数字显示格式,特别的,常规格式下,会根据列宽缩进显示. 实际中,有时需要导入实际值,有时需要导入显示值. 而B2的显示值,由于跟列宽相关,目前未找到任何软件,可 ...
- php 操作分表代码
//哈希分表 function get_hash_table($table, $userid) { $str = crc32($userid); if ($str < 0) { $hash = ...