主要简介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
- 新建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