主要记录一下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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。