Django + Django REST framework步骤总结
主要记录一下Django + Django REST framework的步骤总结,第一次鼓捣后台和python,代码写得可能有点乱
此demo项目的部署记录点击这里
一、创建配置项目
项目初始配置
创建项目
$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下看见创建的表
创建应用
$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下可以看见新建的表
二、配置管理员页面
先创建管理员账号
$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/下输入账号密码就可以看到对应管理界面
三、使用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
总结
完整项目代码GitHub地址如下,再说明下,第一次使用python和django,views.py中的代码写得较差,这篇blog主要是记录步骤,不然实在太容易忘记啦!
https://github.com/Joeoeoe/my...