python使用django框架创建API接口
时间: 2023-12-02 19:05:21 浏览: 53
好的,下面是使用Django框架创建API接口的步骤:
1. 创建Django项目:
使用Django命令行工具创建一个新的Django项目:
```
django-admin startproject myproject
```
2. 创建Django应用:
使用Django命令行工具创建一个新的Django应用:
```
python manage.py startapp myapp
```
3. 安装Django REST framework:
使用pip安装Django REST framework:
```
pip install djangorestframework
```
4. 配置Django REST framework:
在Django项目的settings.py文件中添加以下配置:
```python
INSTALLED_APPS = [
# ...
'rest_framework',
]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny',
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
],
}
```
这将启用Django REST framework,并为API添加身份验证和权限。
5. 定义模型:
在Django应用的models.py文件中定义一个模型:
```python
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
price = models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return self.title
```
这个模型将创建一个Book对象,包括书名、作者和价格。
6. 创建序列化器:
在Django应用的serializers.py文件中创建一个序列化器:
```python
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
```
这个序列化器将Book对象转换为JSON格式。
7. 创建视图:
在Django应用的views.py文件中创建一个视图:
```python
from rest_framework import generics
from .models import Book
from .serializers import BookSerializer
class BookList(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer
```
这个视图将查询所有的Book对象,并使用BookSerializer序列化器将它们转换为JSON格式。
8. 添加URL:
在Django应用的urls.py文件中添加一个URL:
```python
from django.urls import path
from .views import BookList
urlpatterns = [
path('books/', BookList.as_view(), name='book-list'),
]
```
这个URL将请求发送到BookList视图。
9. 运行Django项目:
使用Django命令行工具运行Django项目:
```
python manage.py runserver
```
现在,你可以使用REST客户端访问你的API接口,例如使用浏览器访问http://127.0.0.1:8000/books/,将返回所有的Book对象的JSON格式。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)