Django + Django REST framework步骤总结

CollinsAlbert 发布于1年前

一、创建配置项目

项目初始配置

创建项目

$django-admin startproject mysite

安装数据库驱动

$pip install pymysql

更改数据库配置(tips:这里为了方便就直接用root了)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',    #数据库引擎
        'NAME': 'blog_db',  #数据库名
        'USER': 'root',   #账户名
        'PASSWORD': 'password', #密码
        'HOST': 'localhost', #主机
        'PORT': '3306', #端口
    }
}

接着在_init_.py添加如下代码

import pymysql
pymysql.install_as_MySQLdb()

设置settings.py中TIME_ZONE改为自己的时区

TIME_ZONE = 'Asia/Shanghai'

MySQL中创建blog_db数据库

CREATE DATABASE `blog_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

执行数据库迁移命令

$python manage.py makemigrations
$python manage.py migrate

这时可在MySQL下看见创建的表

clipboard.png

创建应用

$python manage.py startapp blogApp

models.py中定义模型

class Blog(models.Model):
    header = models.CharField(max_length=50)
    content = models.TextField()
    cover = models.TextField()
    markdownContent = models.TextField()#保存markdown语法内容
    time = models.CharField(max_length=50)
    readTimes = models.IntegerField()
    def __str__(self):
        return self.header

激活模型

在settings.py的INSTALLED_APPS中添加设置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blogApp.apps.BlogappConfig' #这里,具体apps.后是什么看对应app下的apps.py
]

接着运行命令,检测模型文件的修改,并把修改的部分储存为一次迁移(注意这里还没有修改)

$python manage.py makemigrations blogApp

执行迁移命令

$python manage.py migrate

MySQL下可以看见新建的表

clipboard.png

二、配置管理员页面

先创建管理员账号

$python manage.py createsuperuser

在blogApp/admin.py下向管理员页面添加应用

from django.contrib import admin
from .models import Blog
# Register your models here.
admin.site.register(Blog)

到这里,启动虚拟服务器,到http://127.0.0.1:8000/admin/下输入账号密码就可以看到对应管理界面

clipboard.png

三、使用Django REST framework

主要步骤如下:
安装并配置restframework—>serializer配置—>编写views.py—>URL配置

安装并配置restframework

安装:

pip install djangorestframework

配置:
settings.py的INSTALLED_APPS中添加:

NSTALLED_APPS = [
    ...
    'rest_framework',
]

serializer配置

blogApp下创建serializers.py,编写代码

from rest_framework import serializers
from django.contrib.auth.models import User
from .models import Blog

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username', 'password')

class BlogSerializer(serializers.ModelSerializer):
    class Meta:
        model = Blog
        fields = ('header', 'content', 'cover', 'markdownContent', 'time', 'readTimes')

views.py编写

这里代码比较多就直接后面的GitHub地址吧,不过是第一次接触python和后台方面的东西,没有试过serializer,代码写得比较差,这篇blog主要是以记录步骤为主

URL配置

blogApp下创建urls.py编写URL

from django.urls import re_path
from blogApp import views

urlpatterns = [
    re_path(r'^test_view/$', views.test_view),
    re_path(r'^login_view/$', views.login_view),
    .....
]

mysite/urls.py配置

from django.contrib import admin
from django.urls import path, re_path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^', include('blogApp.urls')),#映射blogApp的urls.py
]

至此,完成,启动本地服务器测试吧,test_view是我自己编写的测试view

clipboard.png

总结

完整项目代码GitHub地址如下,再说明下,第一次使用python和django,views.py中的代码写得较差,这篇blog主要是记录步骤,不然实在太容易忘记啦!
https://github.com/Joeoeoe/my...

查看原文: Django + Django REST framework步骤总结

  • heavycat
  • bigfrog
  • crazypeacock
  • goldenlion