Django的REST框架Flask如何构建API

发布时间:2024-11-14 16:02:02 作者:小樊
来源:亿速云 阅读:79

Django REST框架(DRF)和Flask是两个不同的Python Web框架,它们都可以用来构建API。这里我将分别介绍如何使用Django REST框架和Flask来构建API。

  1. 使用Django REST框架构建API:

首先,确保已经安装了Django REST框架。如果没有安装,可以使用以下命令安装:

pip install djangorestframework

接下来,创建一个新的Django项目和应用:

django-admin startproject myproject
cd myproject
django-admin startapp myapp

myproject/settings.py中,将rest_framework添加到INSTALLED_APPS列表中:

INSTALLED_APPS = [
    # ...
    'rest_framework',
    'myapp',
]

现在,我们可以在myapp中创建一个简单的模型。例如,创建一个Book模型:

# myapp/models.py
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)

    def __str__(self):
        return self.title

接下来,创建一个序列化器来将模型实例转换为JSON格式:

# myapp/serializers.py
from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ['id', 'title', 'author']

然后,创建一个视图来处理API请求:

# myapp/views.py
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

最后,在myproject/urls.py中配置路由:

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from myapp.views import BookViewSet

router = DefaultRouter()
router.register(r'books', BookViewSet)

urlpatterns = [
    # ...
    path('', include(router.urls)),
]

现在,你可以运行Django开发服务器并访问API:

python manage.py runserver

访问http://127.0.0.1:8000/books/,你将看到所有书籍的列表。

  1. 使用Flask构建API:

首先,确保已经安装了Flask。如果没有安装,可以使用以下命令安装:

pip install flask

接下来,创建一个新的Flask应用:

# app.py
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///books.db'
db = SQLAlchemy(app)

class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    author = db.Column(db.String(100), nullable=False)

    def __repr__(self):
        return f'<Book {self.title}>'

db.create_all()

@app.route('/books', methods=['POST'])
def create_book():
    data = request.get_json()
    new_book = Book(title=data['title'], author=data['author'])
    db.session.add(new_book)
    db.session.commit()
    return jsonify(new_book.__dict__), 201

@app.route('/books', methods=['GET'])
def get_books():
    books = Book.query.all()
    return jsonify([book.__dict__ for book in books])

if __name__ == '__main__':
    app.run(debug=True)

现在,你可以运行Flask应用并访问API:

python app.py

访问http://127.0.0.1:5000/books/,你将看到所有书籍的列表。使用POST请求向http://127.0.0.1:5000/books/发送JSON数据,可以创建新的书籍。

推荐阅读:
  1. Django模型层如何实现多表关系创建和多表操作
  2. python中如何使用Django框架

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

django

上一篇:Flask与Django异步支持能力

下一篇:Flask与Django模板语言对比

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》