主要記錄一下Django + Django REST framework的步驟總結,第一次鼓搗後臺和python,代碼寫得可能有點亂
此demo項目的部署記錄點擊這裏python
建立項目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下看見建立的表服務器
$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下能夠看見新建的表
先建立管理員帳號
$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/下輸入帳號密碼就能夠看到對應管理界面
主要步驟以下:
安裝並配置restframework—>serializer配置—>編寫views.py—>URL配置
安裝:
pip install djangorestframework
配置:
settings.py的INSTALLED_APPS中添加:
NSTALLED_APPS = [ ... 'rest_framework', ]
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主要是以記錄步驟爲主
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...