【Django REST framework】虚拟环境和项目搭建(1)


发布时间:2020-02-16 16:38    作者: 晖哥哥   已过去:1 年,9 月   阅读总量:1194 已被赞:0


从今日开始,正式系统自学一次Django REST framework,前面虽然也有接触这个第三方库,但都是蜻蜓点水,也没比较全面的学习一下,疫情来了,感觉每天都无聊透顶,干脆给自己找点事情来做做。

电脑环境:win10

python:3.6

django: 2.0

虚拟环境管理:  pip install virtualenvwrapper-win

 

虚拟环境创建:

mkvirtualenv drf

在drf环境里,安装Django REST framework的必要插件和django

pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple django==2.0
pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple djangorestframework
pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple markdown
pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple django-filter

打开pycharm 新建一个项目就叫my_drf

settings.py 注册

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',

]

 主url.py里,添加可视化AIP的路径,添加REST框架的登录和注销视图

from django.urls import path,re_path,include
urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^api-auth/', include('rest_framework.urls'))
]

 新建一个djangoAPP,名字叫blog,以写一个前后端分离的博客为例,来学习这个框架

模型准备:

blog/models.py:

from django.contrib.auth.models import User
from django.db import models
import django.utils.timezone as timezone #引入时间模块
# Create your models here.
class Tag(models.Model):
    name =models.CharField(max_length=50,verbose_name='博客分类名')
    def __str__(self):
        return self.name
    class Meta# 后台管理显示汉字,这里必须用Meta
        verbose_name = '分类管理'
        verbose_name_plural = verbose_name

 

class Blog_Posts(models.Model):

    title = models.CharField(max_length=100, verbose_name='文章标题')
    context = models.TextField(verbose_name='文章内容')
    author = models.ForeignKey(User, verbose_name='文章作者', on_delete=models.DO_NOTHING)
    tag = models.ForeignKey(Tag, verbose_name='博客分类', on_delete=models.DO_NOTHING)
    put_in_time = models.DateTimeField(verbose_name='发布时间', default=timezone.now)
    up_to_date = models.DateTimeField(verbose_name='更新时间', auto_now=True)
    def __str__(self):
        return self.title
    class Meta# 后台管理显示汉字,这里必须用Meta
        ordering = ['-up_to_date'# 按修改时间倒序排列
        verbose_name = '博文管理'
        verbose_name_plural = verbose_name

简单准备好这两张表,然后注册到admin.py

from django.contrib import admin
from .models import Tag, Blog_Posts
# Register your models here.
# 修改 admin 页面显示标题
admin.site.site_header = "晖哥哥-blog2020"
# 修改 admin 页面头部标题
admin.site.site_title = "晖哥哥-blog2020"
@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
    '''博客分类标签'''
    list_display = ['name']
@admin.register(Blog_Posts)
class PostAdmin(admin.ModelAdmin):
    '''博客文章'''
    list_display = ['title', 'author', 'tag', 'put_in_time', 'up_to_date']
    search_fields = ['title']
 

 执行迁移命令:

    makemigrations   和   migrate
进入后台,录入测试数据.
 

 

点赞

0




登陆后方可评论