[Flutter ][译] FLUTTER + DJANGO APP (1. DJANGO)

此文来自这位 youtuber BK Codes 的内容;但其实也不算翻译,因为他的印度口音我还真的完全对不上频率!! 因此主要为以我为小白角度将 code 上注解,若有误解之处欢迎各位读着更正赐教。
第一篇为 Django 部分,记得先额外安装好 rest_framework!(第二篇 FLUTTER 部分)

  1. 建立起名为 todo_app 的 DJANGO 後端资料库,并加入 apis、todos 的 app,资料结构如下:
todo_app
    |_ apis
    |_ todo_app
    |_ todos
  1. todo_app/todo_app/settings.py
ALLOWED_HOSTS = [
	'10.0.2.2', # for Android emulator
    'localhost'
]
INSTALLED_APPS = [
    ...
    'apis.apps.ApisConfig',
    'rest_framework',
    'todos.apps.TodosConfig'
]
REST_FRAMEWORK = { # rest_framework 权限无需认证,无脑全开
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.AllowAny',
    ]
}
  1. todo_app/todo_app/uls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('apis/v1/', include('apis.urls')), # 开路给 apis/uls.py
]
  1. todo_app/todos/models.py
from django.db import models
# 给 flutter listview 的 title / subtitle
class Todo(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    def __str__(self):
        return self.title
  1. todo_app/apis/serializers.py
from rest_framework import serializers
from todos import models

class TodoSerializer(serializers.ModelSerializer):
    class Meta:
        fields = (
            'id', # 给 flutter 指定资料库资料
            'title',
            'description'
        )
        model = models.Todo
  1. todo_app/apis/urls.py
from django.urls import path
from .views import ListTodo, DetailTodo
urlpatterns = [
    path('', ListTodo.as_view()),
    path('<int:pk>/', DetailTodo.as_view())
]
  1. todo_app/apis/views.py
from django.shortcuts import render
from rest_framework import generics
from todos import models
from .serializers import TodoSerializer

class ListTodo(generics.ListCreateAPIView):
    queryset = models.Todo.objects.all() # 指定数据对象查询集
    serializer_class = TodoSerializer # 指定序列化器

class DetailTodo(generics.RetrieveUpdateDestroyAPIView):
    queryset = models.Todo.objects.all()
    serializer_class = TodoSerializer
]
# rest-framework 把操作都包装好好,指定好名称便可
# 'ListCreateAPIView': get、post
# 'RetrieveUpdateDestroyAPIView': get、put、patch、delete 
# https://www.django-rest-framework.org/api-guide/generic-views/
  1. 都设定好後在终端机执行开启後台
python manage.py runserver 0.0.0.0:8000

第二篇 FLUTTER 部分
注: 资料出处
Part1: https://www.youtube.com/watch?v=hfee7SIwUTs
Part2: https://www.youtube.com/watch?v=fyndW3s9t6M
Part3: https://www.youtube.com/watch?v=LW-220zNA2E

GITHUB:https://github.com/bayardkalyan/flutter-django-fullstack


<<:  哪些行当应该涨工资?你的行业有机会涨吗?

>>:  [Flutter ][译] FLUTTER + DJANGO APP (2.FLUTTER)

新新新手阅读 Angular 文件 - ngIf - Day18

本文内容 学习怎麽使用 Angular 的 *ngIf 语法。 ngIf 的作用 让你可以有条件地去...

Day25:NavigationView

前言 前面两天刻了两个 view, 现在要用 Navigation 来把它们连接起来。 实作 在 R...

ui li 列出清单标签-基础语法

<ul> <li>1</li> <li>2<...

CSS 命名基础介绍 DAY40

今天要来介绍 CSS 命名 首先先来介绍 驼峰式命名: https://zh.wikipedia.o...

介绍RESTful api(Day9)

RESTful api是什麽 在网路上有蛮多说明他的内容,我觉得API 是什麽? RESTful A...