Django Rest FrameWork项目初始化

主要简介drf项目的新建初始化操作

常用命令

workon                     #列出所有的已经安装的虚拟环境
mkvirtualenv py3_drf_shop  # 创建虚拟环境
workon py3_drf_shop        #进入该虚拟环境
pip list                   #查看安装的类库
pip install django         #安装django

安装django-rest-framework

DRF安装时,需要安装一些依赖类库

pip install coreapi
pip install Markdown 
pip install django-filter 
pip install django-crispy-forms
pip install django-guardian 

以上的为 DRF需要的依赖库,安装DRF

pip install djangorestframework         #安装django-rest-framework

新建项目

使用IDE工具为PyCharm

  1. 新建django项目,选择之前创建的虚拟环境(虚拟环境的命名建议区分版本如: py3_drf_shop)

项目的基本结构

创建包

  • apps #放置app
  • extra_apps #放置三方的源码包

创建文件夹

  • media #放置资源文件

  • db_tools #放置一些脚本
    注意
    把apps,extra_apps mark,

    选中apps -> 右键 -->MarkDirectory As -> SourcesRoot #apps文件夹图标变成蓝色
    mark之后在后面的 import之后非常的方便

将apps,extra_apps加入到根的搜索路径之下

import sys
#这样设置了之后,在后面编写中可以直接 import app
sys.path.insert(0,BASE_DIR)
#将apps,extra_apps 路径添加进去
sys.path.insert(0,os.path.join(BASE_DIR,"apps"))
sys.path.insert(0,os.path.join(BASE_DIR,"extra_apps"))

验证项目

运行项目:

run -> run projectname 
运行成功之后访问地址: http://127.0.0.1:8000/  #在验证的时候貌似 url.py文件中 urlpatterns=[] 暂不配置url

修改时区配置

#修改语言code
LANGUAGE_CODE = 'zh-hans'
#时区
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

配置数据库

安装驱动:

pip install mysqlclient #这个驱动不支持python2 

安装失败时,出错的python包,找到对应的包安装即可
解决地址:www.lfd.uci.edu/~gohlke/pythonlibs/

在settings.py配置

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql', #驱动引擎
    'NAME': 'drf_shop',                 #数据库名称
    'USER': 'root',                         #数据库用户名
    'PASSWORD': 'password',                 #数据库密码
    'HOST': '127.0.0.1',                    #主机地址
    'OPTONS': {                             #配置选项
        'init_command': "SET storage_engine='INNODB'", #mysql的引擎
        'charset': 'utf8mb4',
        # 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
    }
}
}

创建一个app

运行manage.py:

tools -> run manage.py Task  
startapp users   #创建一个users app

在创建app之后的migrate警告

WARNINGS:?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
解决地址: https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-sql-mode

配置项目

在setting.py文件中

INSTALLED_APPS = (
...
'rest_framework',
)

REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
    'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
]
}

在url.py文件中配置

urlpatterns = [
    ...
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

创建管理员用户

创建之前需要先编写model
运行manage.py

#创建管理用户
createsupperuser  #username root ,email root@163.com  password root1234

你可能感兴趣的