1.安装虚拟环境 :
mkvirtualenv dj_admin (环境名)
若系统中存在多个python版本在环境名前需指定python版本
2.配置虚拟环境,安装django
pip install django (安装依赖包)
3.进入虚拟环境 :
workon 环境名
退出虚拟环境 :deactivate
查看虚拟环境 :workon
删除虚拟环境 rmvirtualenv
删除依赖包 pip uninstall 依赖包名
4.创建工程(在虚拟环境下创建)
django-admin startproject 工程名
django-admin startproject dj
5.创建数据库,创建项目使用的数据库
安装 pip install PyMySQL
pip install mysqlclient
项目settings.py文件中配置数据库连接
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'root', # 数据库用户名
'PASSWORD': '', # 数据库用户密码
'NAME': 'bise' # 数据库名字
},
}
_init_.py(即dj/__init.py文件)
import pymysql
pymysql.install_as_MySQLdb()
执行迁移
python manage.py makemigrations
python manage.py migrate
进入工程manage.py同级目录下,创建后台超级管理员账户:
python manage.py createsuperuser
6.创建后台应用 :
python manage.py startapp 应用app名字
python manage.py startapp dj_admin
项目settings.py文件中配置应用
INSTALLED_APPS = (
...
'dj_admin.apps.DjAdminConfig',#dj_admin/apps文件内类名
...
)
在应用文件夹内新建urls.py文件(dj_admin/urls.py)
安装 pip install djangorestframework-jwt
urls.py文件写入
from django.conf.urls import url
from rest_framework_jwt.views import obtain_jwt_token
urlpatterns = [
url('^authorizations/$',obtain_jwt_token),
]
在应用文件夹内新建utils.py,返回数据,自定义返回数据
from rest_framework_jwt.utils import jwt_response_payload_handler
def user_response_payload_handler(token,user=None,response=None):
print(user.username)
print(token)
return {
'token':token,
'id':user.id,
'username':user.username
}
setting.py配置
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}
import datetime
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),#过期时间
'JWT_RESPONSE_PAYLOAD_HANDLER': 'dj_admin.utils.user_response_payload_handler',#自定义返回的数据,dj_admin/utils.py.文件内响应函数
}
7.工程同名文件/urls.py
编写总路由:
url(’^提供给前端的访问后台总接口’,include(‘后台应用.urls’))
#后端工程url.py路径
from django.conf.urls import url, include
from django.contrib import admin
from django.conf.urls import url
from rest_framework_jwt.views import obtain_jwt_token
urlpatterns = [
url('admin/', admin.site.urls),
url('^dj_admin/',include('dj_admin.urls'))#'dj_admin.urls' dj_admin 应用文件下url路径
]
8.settings.py
下载包
pip install django-cors-headers
添加应用
INSTALLED_APPS = (
...
'corsheaders',
...
)
设置中间件
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]
添加白名单
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
'localhost:8080',
#'希望能够访问的iP端口'
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
CORS_ORIGIN_ALLOW_ALL= True #这句不加会只发一个options请求,post请求不会发出
到此为止跨域就解决了,前后端分离后台就可以进去了
诚邀大佬指点,若有不对之处,大佬多包涵,不吝赐教