`
sillycat
  • 浏览: 2552708 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python Monitor Water Falls(2)Python RESTful Service

 
阅读更多
Python Monitor Water Falls(2)Python RESTful Service

Prepare the package
>pip install django
>pip install djangorestframework
browsable API
>pip install markdown
filter support
>pip install django-filter

Start up the project
>django-admin.py startproject restful_api
>cd restful_api/
Create a quick start
>django-admin.py startapp quickstart

Sync the database for the first time
>python manage.py migrate

Create a user admin and password password123.
>python manage.py createsuperuser --email luohuazju@gmail.com --username admin
It will ask me for password.

First Example to Build RESTful Service on that.
Add restful_api/quickstart/serializers.py
from django.contrib.auth.models import User, Group
from rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'groups')

class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('url', 'name')

Viewsets to Have the Response in restful_api/quickstart/views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from restful_api.quickstart.serializers import UserSerializer, GroupSerializer

class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint for users
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet):
    """
    API endpoint for groups
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

Add the URL mapping in restful_api/urls.py
from django.conf.urls import url, include
from rest_framework import routers
from restful_api.quickstart import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)

urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

Add the settings there in restful_api/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
]

Start the RESTful Service
>python manage.py runserver

Test that from CURL
>curl -H 'Accept: application/json;indent=4' http://localhost:8000/users/
[
    {
        "url": "http://localhost:8000/users/1/",
        "username": "admin",
        "email": "luohuazju@gmail.com",
        "groups": []
    }
]

Test that from Browsable API
http://localhost:8000/

That is a very nice beginning.
Here are more to read about some details
http://www.django-rest-framework.org/tutorial/1-serialization/
http://www.django-rest-framework.org/tutorial/2-requests-and-responses/
http://www.django-rest-framework.org/tutorial/3-class-based-views/

And further read in settings
http://www.django-rest-framework.org/api-guide/settings/

References:
http://www.django-rest-framework.org/
http://jadyer.cn/2013/03/19/xml-stax/
https://blog.windrunner.me/python/web/django-rest-framework.html
http://www.cnblogs.com/ccorz/p/djangorestframework-shi-yong-li-zi.html
http://blog.csdn.net/luojie140/article/details/76832749




分享到:
评论

相关推荐

    利用Frank-Wolfe求解UE用户均衡模型,以SiouxFalls网络为例(Python)

    本资源中利用Frank-Wolfe算法求解了SiouxFalls网络的交通分配结果(UE用户均衡结果,即没有用户可以通过单方面改变出行路径从而降低出行费用)。网络基本信息如txt文件所示,路阻函数采用了经典美国联邦公路局BPR...

    PyPI 官网下载 | gravity_falls-0.0.2-py3-none-any.whl

    《PyPI官网下载:探索Python库“gravity_falls”》 在Python的生态系统中,PyPI(Python Package Index)扮演着至关重要的角色,它是全球最大的Python软件仓库,为开发者提供了无数的开源库和模块。本篇文章将围绕...

    Python 正则表达式.docx

    ### Python中的正则表达式详解 #### 一、引言 正则表达式(Regular Expression),简称regex或regexp,是一种非常强大的文本处理工具。它能够帮助我们高效地完成字符串的搜索、匹配、替换等操作。在Python编程语言...

    Gravitty Falls.exe

    Gravitty Falls.exe

    Get the Day of Week that a Day Falls On

    在大多数编程语言中,都有内置的日期和时间数据类型,例如在VBScript中是Date,在Python中是datetime。这些数据类型可以存储日期和/或时间,并提供了操作它们的方法。 要获取一个日期是星期几,我们通常需要使用到...

    Alan Walker All Falls Down.mp3

    Alan Walker All Falls Down.mp3

    dijkstra算法代码matlab-GP3:GP3

    Falls路网,如需完整数据和代码请联系。 依赖关系 Python 3.6+ NumPy SciPy 熊猫 网络X CVXOPT MATLAB 2018a 描述 covarianceMatrix.m:生成协方差矩阵的方法 func_GP3.m和func_GP3_accelerate.m:GP3的两种实现方式...

    Edexcel GCSE 计算机科学课程活动.doc

    - 复制并运行程序 `print("the rain falls", "from the sky")`,理解逗号的作用。 - 分析结果,了解逗号如何改变输出格式。 - **Activity 2.5**:探索转义序列及其作用。转义序列可以帮助改变文本的显示方式,如...

    Gravity Falls Wallpapers New Tab Themes-crx插件

    我们展示了Gravity Falls扩展程序,它将使您的浏览器拥有全新的外观。 通过安装它,您将获得具有完美品质的随机主题,这些主题将在您每次打开新标签页时显示。 这些主题将在您浏览时出现,使您更加享受。 但是,这还...

    python-lists-lab-data-science-intro-000

    好的,现在我们对如何在Python中读取和更改列表有了一定的了解,让我们来使用这些知识。 目标 练习从列表中读取一个或多个元素 练习更改列表中的数据 练习添加元素和从列表中删除元素 我们的初始数据结构 在上一课中...

    Ball_falls.java

    一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第 10 次落地时, 共经过多少米?第 10 次反弹多高?

    Autumn Falls HD Wallpapers Adult Theme-crx插件

    语言:English (United States) 在每个选项卡背景上均包括...通过我们的扩展程序,您可以获得:1:高分辨率的新标签页体验2:简单,清晰的视图! 没有无用的工具,图块或小部件! 3:从新标签页中进行简单,直接的搜索

    falls_assignment4

    在本项目"falls_assignment4"中,我们主要探讨的是与Java编程相关的内容。根据提供的信息,我们可以推测这可能是一个关于Java编程的作业或项目,它可能涵盖了Java的基础知识、特定的编程任务,甚至可能涉及软件开发...

    Gravity Falls wallpaper New Tab-crx插件

    借助Gravity Falls壁纸,您将获得惊人的功能,例如在“新标签”中更改背景 Chrome的Gravity Falls扩展程序会带来什么? 首先,您应该知道,通过引入此Gravity Falls壁纸新标签扩展名,您可以处置掉实际上已经过时的...

    Smart_Bed_Falls_detection

    2. **异常检测**:设定阈值,当传感器数据显示超过正常范围(如突然的加速度变化或压力消失)时,触发警报。 3. **信号处理**:使用滤波器去除噪声,提高数据准确性。 4. **行为识别**:通过机器学习算法(如决策树...

    水晶瀑布crystal_falls_VR游戏开发_天空盒子_Skybox_高清_16K_EXR

    可用于UnityVR开发,3D游戏开发,高清天空盒子Skybox素材,游戏环境背景... 2-创建空Material,并转换成Cube/skybox形式, 3-将图片拖入新建的SkyboxMaterial, 4-用刚创建的Material代替项目中原本的系统默认Skybox

    斯特克斯普鲁特瀑布sterkspruit_falls_VR游戏开发_天空盒子_Skybox_高清_16K_EXR

    可用于UnityVR开发,3D游戏开发,高清天空盒子Skybox素材,游戏环境背景素材...2-创建空Material,并转换成Cube/skybox形式, 3-将图片拖入新建的SkyboxMaterial, 4-用刚创建的Material代替项目中原本的系统默认Skybox

    POWER6线程与UltraSPARC T2 Plus线程详解

    近期,两大科技巨头IBM和SUN公司分别展示了旗下先进的多线程系统,即IBM的64线程Power 595和SUN的128线程"维多利亚瀑布"(Victoria Falls)系统。这两款系统均以强大的线程处理能力著称,但在设计理念和应用场景上各有...

Global site tag (gtag.js) - Google Analytics