欢迎来访我的博客。

Django Rest Framework学习总结-0:安装和简例

Django 小张哥哥 364浏览 1评论

Django Rest Framework是一个功能强大而且非常灵活的工具,可以用来构建web api。官方给出的优点如下:

  1. The Web browsable API is a huge usability win for your developers.
    对开发这来说非常具有可用性的web api

  2. Authentication policies including packages for OAuth1a and OAuth2.
    安全策略,包括一些适用于OAuth1a和OAuth2的包

  3. Serialization that supports both ORM and non-ORM data sources.
    支持对ORM和非ORM的数据的序列化。

  4. Customizable all the way down - just use regular function-based views if you don't need the more powerful features.
    具有很高的可客制化性,不想使用那些比较强大的特色功能的话,也可以只使用很常规的views方法。

  5. Extensive documentation, and great community support.
    广泛的文档资料和社区支持。

  6. Used and trusted by internationally recognised companies including Mozilla, Red Hat, Heroku, and Eventbrite.
    已经被很多有名的科技公司信任并使用,包括Mozilla, Red Hat, Heroku和Eventbrite



DRF的安装


安装依赖

REST framework的安装依赖如下:

Python(3.5, 3.6. 3.7)
Django(1.11, 2.0, 2.1, 2.2)

另外可以根据选择安装:

coreapi(1.32.0+) - Schema generation support.
Markdown (3.0.0+) - Markdown support for the browsable API.
Pygments (2.4.0+) - Add sytax highlighting to Markdown processing.
django-filter (1.0.1+) - Filtering support.
django-guardian (1.1.1+) - Object level permissions support.


安装配置

可以使用pip进行安装

pip install djangorestframework
pip install markdown       # Markdown support for the browsable API.
pip install django-filter  # Filtering support

也可以直接从github上克隆该项目:

git clone https://github.com/encode/django-rest-framework

将'rest_framework'添加到项目settings.py文件中的INSTALLED_APPS中:

INSTALLED_APPS = (
    ...
    'rest_framework',)


如果你想使用可视化的API,你可以添加REST framework的login和logout的视图。可以添加如下信息到你项目的urls.py文件中:

urlpatterns = [
    ...
    path('^api-auth/', include('rest_framework.urls'))]

使用示例

安装并配置好之后,我们可以来做一个简单的api示例。

我们可以直接使用django自带的User模型。
我们可以将REST framework的一些全局的配置项以一个字典(名称REST_FRAMEWORK)的形式添加到我们的settings.py文件中:

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]}


为了简单起见,我们直接在urls.py文件中添加如下信息:

from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets

# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff')
        
    # ViewSets define the view behavior.class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    
    # Routers provide an easy way of automatically determining the URL conf.
    router = routers.DefaultRouter()
    router.register(r'users', UserViewSet)
    
    # Wire up our API using automatic URL routing.
    # Additionally, we include login URLs for the browsable API.
    urlpatterns = [
        path('api-auth/', include('rest_framework.urls')),
        path('', include(router.urls))
    ]

然后,我们现在可以打开浏览器,输入地址http://127.0.0.1:8000去看一下:

django_rest_framework_00.png

使用我们创建好的superuser登陆或者直接将刚setting.py文件中添加的REST_FRAMEWORK中的内容注释掉。我们就可以
尝试在页面通过POST请求添加一个user。

django_rest_framework_01.png


再将刚才注释的内容打开,发现我们在没有登陆情况下,已经没有通过POST添加user的权限了。

django_rest_framework_02.png

你可以登陆一下,尝试一下其它的一些操作。


这样,Django REST framework看上去是不是很简单的就上手了?



本文中的源码可以在Github上查看。点我查看本文源码

转载请注明:禅思 » Django Rest Framework学习总结-0:安装和简例?

喜欢 (0) or 分享 (0)

我的个人微信公众号,欢迎关注

扫码或搜索:Python后端开发Django

Python后端开发Django

微信公众号 扫一扫关注

结交朋友、一起学习,一起进步。

科波之主

QQ号 386046154 立即加入

添加微信,进行技术交流

专注技术交流, 一同成长进步

我的微信号

如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
    1. india pharmacy that takes mastercard for viagra dapoxetine and viagra review viagra usa pharmacy http://genqpviag.com/ - viagra retail ’
      Lbgamomi 2021-01-27 05:18:20 回复