要完成是这样一个网站:http://www.yushu.im/,该网站主要是赠送书的一个平台(公益性的)

网站框架功能:

python_flask小项目实例-编一个小网站

前期准备(用pycharm直接创建应该也可以,感觉直接创简单)

新建文件夹,创建虚拟环境(创建虚拟环境的好处就不说了),安装需要的包。

1)安装pipenv包,pip install pipenv

2) 在项目文件下用pipenv创建虚拟环境,pipenv install

python_flask小项目实例-编一个小网站

3)按照提示pipenv shell进入虚拟环境

python_flask小项目实例-编一个小网站

进入虚拟环境后发现只有虚拟环境提供的包:

python_flask小项目实例-编一个小网站

4)安装一些需要的包,首先flask,这时候安装不是pip,是pipenv install flask

关于虚拟环境pipenv

进入:pipenv shell

退出:exit

安装与卸载包:pipenv install 包名,pipenv uninstall 包名

查看包的安装关系: pipenv graph          详细看gitHub官方文档。

5)开发工具

pycharm,数据库mysql(直接安装Xampp),Navicat(数据库可视化管理工具),安装过程略

热身,补知识:

1)建立文件config.py作为配置文件,在主文件夹中肯定要导入配置文件,一般是from。flask有一个高尚的方法

python_flask小项目实例-编一个小网站

业务代码开始

书籍搜索:

一般支持三种搜索方式:书名(精准与模糊),作者,ISBN

也可说两种:关键字检索,ISBN号检索

1)搜索的数据哪里来?

数据库?当然不是,没有这么多。这里依靠外部的API完成

图书数据的基地址:http://t.yushu.im

关键字搜索:http://t.yushu.im/v2/book/search?q={}&start={}&count={}        解释三个参数:q传递关键字,因为返回很多记录,start与count控制分页

ISBN搜索:http://t.yushu.im/v2/book/isbn/{isbn}                                         

也可以用豆瓣API:http://api.douban.com/v2/book      (此博客用的是上面api,豆瓣的API有访问频率控制)

为了方便编程,理解一下isbn,他有两种形式,isbn13(13个数字组成);isbn10(10个数字组成,不过中间可能含有‘ - ’)

为了方便阅读等好处:建立文件夹helper,放一些被调用的函数。

 

#!/usr/bin/env python
#-*-coding:utf-8 -*-

'''
编写一些函数,用于调用
'''

def is_isbn_or_key(word):
    """
    判读输入的参数是关键还是isbn,isbn有两种,isbn10,isbn13
    :param word: q
    :return: 'key'  或者 ‘isbn’
    """
    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
helper

相关文章: