Django + Django REST framework步驟總結

主要記錄一下Django + Django REST framework的步驟總結,第一次鼓搗後臺和python,代碼寫得可能有點亂
此demo項目的部署記錄點擊這裏python

1、建立配置項目

項目初始配置

建立項目mysql

$django-admin startproject mysite

安裝數據庫驅動git

$pip install pymysql

更改數據庫配置(tips:這裏爲了方便就直接用root了)github

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',    #數據庫引擎
        'NAME': 'blog_db',  #數據庫名
        'USER': 'root',   #帳戶名
        'PASSWORD': 'password', #密碼
        'HOST': 'localhost', #主機
        'PORT': '3306', #端口
    }
}

接着在_init_.py添加以下代碼sql

import pymysql
pymysql.install_as_MySQLdb()

設置settings.py中TIME_ZONE改成本身的時區數據庫

TIME_ZONE = 'Asia/Shanghai'

MySQL中建立blog_db數據庫django

CREATE DATABASE `blog_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

執行數據庫遷移命令segmentfault

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

這時可在MySQL下看見建立的表服務器

clipboard.png

建立應用

$python manage.py startapp blogApp

models.py中定義模型markdown

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

2、配置管理員頁面

先建立管理員帳號

$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

3、使用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...

相關文章
相關標籤/搜索