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

项目源码下载:https://github.com/Cherish-sun/NEWS/tree/master

一、开发目的

通过新闻系统前后端分离开发,在后端开发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 django==2.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

建库

六、初始化配置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()

此时项目结构应该为:


项目结构

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

你可能感兴趣的:(Django前后端分离开发-新闻管理系统(一))