Django前后端分离开发-新闻管理系统(一)

一、开发目的
通过新闻系统前后端分离开发,在后端开发web api的过程中让你快速熟练掌握django rest framework框架的开发,让你要项目实战中掌握rest 标准api的开发技术。在前端开发让你快捷简便的掌握django模板调用api的过程。

二、开发环境
•开发工具:Pycharm

•开发环境为: Windows10、Python3.6.8、Django2.0.3、djangorestframework(3.8.2)

•数据库:Mysql5.6

•前端:Div Css 、ajax 、 Django2.0.3

•后端:Django2.0.3、djangorestframework(3.8.2)

三、创建项目和应用
django-admin.py startproject newsapi
python manage.py startapp article

四、安装项目所需依赖包
pip install django2.0.3
pip install djangorestframework
3.8.2
pip install pymysql
pip install Markdown
pip install django-filter
pip install django-crispy-forms
pip install django-cors-headers
pip install django-rest-swagger

五、配置setting.py

# 注册app
INSTALLED_APPS = [
	'django.contrib.admin',
	'django.contrib.auth',
	'django.contrib.contenttypes',
	'django.contrib.sessions',
    'django.contrib.messages',
	   'django.contrib.staticfiles',
    'article', # 我们的app
	'rest_framework', # 前后端分离框架
	'crispy_forms',  # 展示表单
	'django_filters', # 查询
	'rest_framework.authtoken',  # 认证
]


# 连接mysql数据库
DATABASES = {
'default': {
		'NAME': 'news',  # 数据库名
		'ENGINE': 'django.db.backends.mysql',
		'USER': 'root',  # 用户名
		'PASSWORD': 'test',  # 密码
		'HOST': '127.0.0.1',  # 主机IP
		'PORT': '3306',  # 端口
		'useSSL': 'false',
	}
}

# 时间设置
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False  # 默认是True, 时间是UTC时间,由于我们要用到本地时间,所以设置成False

# 默认文件路径设置
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('', '/')
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')

windows上mysql安装可参考我的另一篇文章:https://www.jianshu.com/p/d16fb1679a87
打开mysql连接工具,我用的是HeidiSQL,下载安装:https://jingyan.baidu.com/article/f7ff0bfc3f2d132e26bb13d4.html,创建数据库news
Django前后端分离开发-新闻管理系统(一)_第1张图片

六、初始化配置rest framework(setting.py中)
# token rest framework 配置实现
REST_FRAMEWORK = {
‘DEFAULT_PERMISSION_CLASSES’: (
‘rest_framework.permissions.IsAuthenticated’, # 必须有
),
‘DEFAULT_AUTHENTICATION_CLASSES’: (
‘rest_framework.authentication.BasicAuthentication’,
# ‘rest_framework.authentication.TokenAuthentication’,#系统已有的
‘article.auth.MyTokenAuthentication’, # 自定义的带过期的认证
),
‘DEFAULT_RENDERER_CLASSES’: (
‘rest_framework.renderers.JSONRenderer’,
),
‘DEFAULT_PARSER_CLASSES’: (
‘rest_framework.parsers.JSONParser’,
)
}
七、配置pymysql
# 在setting.py 同级目录下的init文件导入
import pymysql
pymysql.install_as_MySQLdb()
此时项目结构应该为:

Django前后端分离开发-新闻管理系统(一)_第2张图片

文件中newsapi_env是我创建的python虚拟环境(建议,防止各个项目环境相互影响),不创建也可以。

你可能感兴趣的:(【REST,framework,实战项目】)