如何借助 Django 来编写一个 Python restful api接口

本文详细介绍了如何利用Python的Django框架和rest_framework库来创建一个RESTful API接口,包括连接数据库、爬取并保存数据、创建Web工程、编写接口以及实现分页功能。Django提供了快速搭建网站的模块,而rest_framework则是一个强大的构建Web API的工具包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


用Python如何写一个接口呢,首先得要有数据,可以用我们在网站上爬的数据。

大量的数据保存到数据库比较方便。我用的pymsql,pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前在python3.x中,PyMySQL取代了MySQLdb。

1.连接数据库

# 连接数据库,需指定charset否则可能会报错
db = pymysql.connect(host="localhost", user="root", password="123", db="mysql", charset="utf8mb4")
cursor = db.cursor()  # 创建一个游标对象

2.创建数据库

cursor.execute("DROP TABLE IF EXISTS meizi_meizis")  # 如果表存在则删除
      # 创建表sql语句
      createTab = """create table meizi_meizis(
              id int primary key auto_increment,
              mid varchar(10) not null,
              title varchar(50),
              picname varchar(10),
              page_url varchar(50),
              img_url varchar(50)
              );"""
      cursor.execute(createTab)  # 执行创建数据表操作

3.爬取数据

def html(self, href, title):
       lists = []
       meiziid = href.split('/')[-1]
       html = self.request(href)
       max_span = BeautifulSoup(html.text, 'lxml').find('div', class_='pagenavi').find_all('span')[-2].get_text()
       for page in range(1, int(max_span) + 1):
           meizi = {
   }
           page_url = href + '/' + str(page)
           img_html = self.request(page_url)
           img_url = BeautifulSoup(img_html.text, 'lxml').find('div', class_='main-image').find('img')['src']
           picname = img_url[-9:-4]
           meizi['meiziid'] = meiziid
           meizi['title'] = title
           meizi['picname'] = picname
           meizi['page_url'] = page_url
           meizi['img_url'] = img_url
           lists.append(meizi)  # 保存到返回数组中
       return lists

4.保存到数据库

def all_url(self, url):
       html = self.request
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值