首页 > 编程语言 > 详细

学习python-20191208(1)-Python Flask高级编程开发鱼书_第03章_数据与flask路由

时间:2019-12-08 20:45:20      阅读:99      评论:0      收藏:0      [点我收藏+]

视频01:

略。。。。。。

————————————————————————————————————————————————————————————

视频02:

搜索需要外部数据源,也就是需要外部的API。

图书数据搜索用到的几个地址:

  1、关键字搜索http://t.yushu.im/v2/book/searh?q={}&start={}&ount={}  

  2、isbn搜索    http://t.yushu.im/v2/book/isbn/{isbn}  把参数放在url路径中

  3、豆瓣API     https://api.doubn.com/v2/book     有API访问频次限制,大概每小时150次,超过后你的IP地址会被暂时封闭一段时间

  没有不控制访问频率的API,没有控制,就可能会被别人搞瘫痪了。

————————————————————————————————————————————————————————————

视频03:

本视频学习的几个关键点:

1、学习在url路径中传递参数的方式
@app.route(/book/search/<q>/<page>)   接收参数
def search(q,page):             传入参数  
2、q.isdigit()函数可以判断当前字符中是不是全为数字
3、q.replace(‘-‘,‘‘)函数可以把当前字符串中的短横线替换成空格

4、在有多个条件时,条件的先后顺序是会影响执行效率的,要把大概率出现false的条件放在前面,前面的条件判断为false后,它后面的其他条件就不会再执行了。
   如果在条件判断时有耗时操作,如要查询数据库,这样的耗时条件应该尽量放到后面,因为越往后它执行的可能性越小
# 在url路径中传递参数 <q>/<page>
@app.route(/book/search/<q>/<page>)
def search(q,page):
    ‘‘‘
        q:普通关键字 或 isbn
        isbn目前有两种方式:1.isbn13——它是由13个0至9的数字组成;2.isbn10——由10个0到9的数字组成,中间含有一些短横线 -
        page
    ‘‘‘
    isbn_or_key = key
    if len(q) == 13 and q.isdigit():   #q.isdigit()函数可以判断当前字符中是不是全为数字
        isbn_or_key = isbn
    short_q = q.replace(-,‘‘)
    # 在有多个条件时,条件的先后顺序是会影响执行效率的,要把大概率出现false的条件放在前面,如果是false那它后面的其他条件就不会再执行了。
    # 如果在条件判断时有耗时操作,如要查询数据库,这样的耗时条件应该尽量放到后面,因为越往后它执行的可能性越小
    if - in q and len(short_q)==10 and short_q.isdigit():  # q.replace(‘-‘,‘‘)函数可以把当前字符串中的短横线替换成空格
        isbn_or_key = isbn
    pass  

————————————————————————————————————————————————————————————

视频04:

本视频学习的几个关键点:

1、把判断的代码部分提取成一个函数,以提高执行代码的复用性、可读性。
2、好的函数名,要能体现函数的基本功能。在函数体内部最上方可书写函数说明,要养成这种良好的编程习惯。
#新建一个名叫heler.py的文件,单独把抽取出来的条件语句封闭成一个函数,然后在视图函数中调用它
def is_isbn_or_key(word):
    ‘‘‘
    当前函数说明:
    :param word:
    :return:
    ‘‘‘
    isbn_or_key = key
    if len(word) == 13 and word.isdigit():
        isbn_or_key = isbn
    short_word = word.replace(-,‘‘)
    if - in word and len(short_word)==10 and short_word.isdigit():
        isbn_or_key = isbn
    return isbn_or_key  #因为这是一个函数,所以要把结果返回回去
from helper import is_isbn_or_key

# 实例化flask对象
app = Flask(__name__)

# 视图函数是项目的起点,阅读或维护代码时也是从这里开始,如果视图函数特别长而乱,维护起来是个很大的问题
# 看源代码,一定要分层去看,第一遍是理清源代码的结构,先不要关注细节
@app.route(/book/search/<q>/<page>)
def search(q,page):
    isbn_or_key  = is_isbn_or_key(q)

# 用run方法,启动web服务器
if __name__ == __main__:
    app.run(host=0.0.0.0,debug=True ,port=5000)

————————————————————————————————————————————————————————————

视频05:

本视频学习的几个关键点:
1、在python中发送http请求有两种方式:
  (1)urllib 不用安装,直接使用 from urllib import request;
  (2)requests 这个第三方库来实现,它需要安装一下(做项目时推荐使用)
2、Ctrl+Alt+I代码自动缩进
3、用三联表达式来简化代码
4、r = requests.get(url) r.status_code得到状态码 r.json()把得到的数据格式化为json r.text按字符串返回
import requests

#创建一个名为HTTP的类
class HTTP:
    def get(self,url,return_json=True):
        r = requests.get(url)
        # r中包含了状态码、headers信息等
        # 用三联表达式来简化代码
        if r.status_code != 200:#取状态码
            return {} if return_json else ‘‘
        return r.json() if return_json else r.text

        # if r.status_code == 200:#取状态码
        #     if return_json:
        #         return r.json()#json格式的通用返回方法  
        #     else:
        #         return r.text
        # else:
        #     if return_json:
        #         return {}
        #     else:
        #        return ‘‘

 

学习python-20191208(1)-Python Flask高级编程开发鱼书_第03章_数据与flask路由

原文:https://www.cnblogs.com/hzjdpawn/p/12004602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!