項目源碼下載:https://github.com/Cherish-sun/NEWS/tree/master
一碳抄、開發(fā)目的
通過新聞系統(tǒng)前后端分離開發(fā)豪筝,在后端開發(fā)web api的過程中讓你快速熟練掌握django rest framework框架的開發(fā),讓你要項目實戰(zhàn)中掌握rest 標準api的開發(fā)技術腻脏。在前端開發(fā)讓你快捷簡便的掌握django模板調用api的過程葵陵。
二、開發(fā)環(huán)境
?開發(fā)工具:Pycharm
?開發(fā)環(huán)境為: Windows10又碌、Python3.6.8、Django2.0.3绊袋、djangorestframework(3.8.2)
?數(shù)據(jù)庫:Mysql5.6
?前端:Div+Css 、ajax 铸鹰、 Django2.0.3
?后端:Django2.0.3癌别、djangorestframework(3.8.2)
三、創(chuàng)建項目和應用
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數(shù)據(jù)庫
DATABASES = {
'default': {
'NAME': 'news', # 數(shù)據(jù)庫名
'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安裝可參考我的另一篇文章:http://www.reibang.com/p/d16fb1679a87
打開mysql連接工具圾笨,我用的是HeidiSQL,下載安裝:https://jingyan.baidu.com/article/f7ff0bfc3f2d132e26bb13d4.html教馆,創(chuàng)建數(shù)據(jù)庫news
六、初始化配置rest framework(setting.py中)
# token rest framework 配置實現(xiàn)
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated', # 必須有
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
# 'rest_framework.authentication.TokenAuthentication',#系統(tǒng)已有的
'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是我創(chuàng)建的python虛擬環(huán)境(建議土铺,防止各個項目環(huán)境相互影響),不創(chuàng)建也可以板鬓。