Django网站搭建,并配置REST API

108 阅读1分钟

Django网站搭建,并配置REST API

对于没有建过网站的同学,可能会比较紧张。然而现在都是用框架建站,几行命令就可以生成带登录窗口和后台管理的空网站。这里我选用了Django。因为python是唯一一门可以做数据采集+网站开发+数据挖掘的语言。而Django是python优秀的网站框架。不接受反驳!

django-admin.py startporject sensordisplay#生成网站
cd sensordisplay 
python manage.py startapp sensor#生成app
python manage.py migrate # 初始化数据库
python manage.py createsuperuser # 创建管理员
python manage.py runserver # 运行网站

当然,现在这个网站还不能用,我们需要添加需要的功能:

  • 存储数据: 需要在model.py 声明数据字段。sensor/models.py
from django.db import models
class Temperature(models.Model):
	captime=models.DateTimeField(auto_now_add=False)
	captemperature=models.CharField(max_length=10)
	
	def __str__(self):
		return self.captemperature
  • 一个页面显示数据:这个我们后面提供代码
  • 一个页面显示REST API:配置REST Framework

首先我们来安装REST Framework,命令行输入执行

pip install djangorestframework

更新settings.py

INSTALLED_APPS = [
...
    'rest_framework',
    'sensor'
]

在sensor目录下新建一个python文件 serializers.py

from rest_framework import serializers
from sensor.models import Temperature
class TempSerializer(serializers.ModelSerializer):
    class Meta:
        model = Temperature
        fields = ['captime', 'captemperature']

在sensor/views.py 里面调用

from sensor.models import Temperature
from sensor.serializers import TempSerializer
from rest_framework import generics

class temperature_api(generics.ListCreateAPIView):
    queryset = Temperature.objects.all()
    serializer_class = TempSerializer

配置路由:sensordisplay/urls.py # 总网站的路由

from django.urls import include
from django.conf.urls import url

from django.contrib import admin
from sensor import views

urlpatterns = [
    url(r'admin/', admin.site.urls),
    url(r'^sensor/', include('sensor.urls')), #所有访问传感器的都会跳到传感器路由
]

sensor/urls.py # 传感器路由

from django.conf.urls import url
from sensor import views

urlpatterns = [
    url(r'^$', views.temperature,name='sensor.temperature'),
    url(r'^temperature_api', views.temperature_api.as_view(),name='sensor.temperature_api'),
    url(r'^get_temperature', views.get_temperature,name='sensor.get_temperature'),
]

运行服务器,我们就可以看到效果了

python manage.py runserver