dajngo+react+docker技术栈

dajngo+react+element+docker技术栈

2020/6 为了在能做点工作的时候尽快将想法实现,经过慎重考虑,将mysql+python+dajngo+react+docker技术栈转变为自己的东西,决定重新总结运用这些技术

0.环境与选型说明

辅助工具的资源安装准备不赘述,本文重点放在dajngo和react上面

项目版本 说明
Windows+WMware 开发环境为windows,虚拟机软件为VM15,原因穷且志坚
MySQL5.7 关系型数据库mysql,满足存储各种数据需要;用navicat管理
Python3.6 后端开发语言,最为熟悉也最难写整齐的语言;包管理用pipenv
Django2.2 Python Web主流框架,使用其自带的admin用户模块;开发IDE偏好VSCode,同时也会使用pycharm
React16.13.1 前端框架,主流且环境友好
Windows Server 2019(虚拟机) 服务器,已经部署好Active Directory(AD域服务),用来管理账户密码认证
Centos8(虚拟机) 【未来】用来运行web应用;nginx、gunicorn集成再考虑
Docker、K8S 【未来】用来部署集成web应用

1.技术栈选型

  1. python和mysql

mysql必定选5.7,python选3.6-3.8都可以

连接器/ Python版本 MySQL服务器版本 Python版本 连接器状态
8.0 8.0、5.7、5.6、5.5 3.8、3.7、3.6、3.5、3.4、2.7 一般可用性
2.2(接8.0) 5.7、5.6、5.5 3.5、3.4、2.7 开发人员里程碑,暂无发布
2.1 5.7、5.6、5.5 3.5、3.4、2.7、2.6 一般可用性
2.0 5.7、5.6、5.5 3.5、3.4、2.7、2.6 GA,最终版本于2016-10-26
1.2 5.7、5.6、5.5(5.1、5.0、4.1) 3.4、3.3、3.2、3.1、2.7、2.6 GA,最终版本于2014-08-22
  1. python和django
    djnago选2.2,理由是Django2.2LTS支持到2022年
  • 从django支持的版本就可得到:1.11和2.2为长期支持版本,对应的最新版本分别是1.11.292.2.13
  • 之前的项目使用的是1.11,基本上从现在(2020年)此后两年选用2.2版本没得问题
  • 看到django3支持基于ASGI的异步通信,等2021年4月3.2版本出来后,开发环境可以直接从2.2跃迁过去。为了更稳健地开发,我会选择django2.2作为后端开发框架
django版本 python版本
1.11 2.7、3.4、3.5、3.6、3.7(1.11.17添加)
2.0 3.4,3.5,3.6,3.7
2.1 3.5,3.6,3.7
2.2 3.5,3.6,3.7,3.8(在2.2.8中添加)
3.0、3.1、3.2 3.5、3.6、3.7、3.8

在这里插入图片描述
在这里插入图片描述

2.django2.2搭建配置与react的安装配置

2.1.django后端

2.1.1.pipenv 管理项目所需python三方库环境

环境管理,之前的项目使用的是pipenv去创建独立的项目环境,pipenv用pip安装即可。

pip install pipenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

步骤

在E:\randolph文件夹下创建空文件夹husky_ad_web
进入husky_ad_web文件夹,地址栏输入cmd打开命令窗口
# 创建pipenv虚拟环境
pipenv install
# 进入虚拟环境
pipenv shell
# 安装指定版本django框架
pip install django==2.2.13

截图记录如下:
在这里插入图片描述

检查有没有安装任何第三方炸药包:
在这里插入图片描述
pip从豆瓣库安装指定版本的django到环境中:

pip install django==2.2.13 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

在这里插入图片描述检查安装情况:
在这里插入图片描述

2.1.2.django项目的创建

django-admin命令创建后端项目,进入项目文件夹husky_ad_web并启动开发服务器:

django-admin startproject husky_ad_web
cd husky_ad_web
python manage.py runserver

在这里插入图片描述
文件结构
在这里插入图片描述
这里解释一下:第一层husky_ad_web项目名创建出来用来创建pipenv虚拟环境,安装django,然后用django-admin命令创建django项目也就是第二层的husky_ad_web文件夹,里面有一个和项目名同名的app、db.sqlite3是自带的数据库(之后需要替换成mysql)、manage.py管理工具。

2.1.3.django项目的超管账户创建和切换mysql数据库并数据初始化

接上一步在cmd中ctrl+c关闭开发服务器
数据库迁移并创建超级用户

python manage.py migrate
python manage.py createsuperuser

在这里插入图片描述
再次开启开发服务器,用超级管理员登陆:
url后缀拼接一个admin,就会进到登录页面

http://127.0.0.1:8000/admin

在这里插入图片描述
登录后;了解一下已经有的功能——admin模块
在这里插入图片描述

接下来切换mysql数据库,修改settings迁移数据库,删掉db.sqlite3
用vscode打开项目(偏好),安装django插件,点击左侧栏运行图标,选择launch.json后点选django即可debug。
在这里插入图片描述

换成mysql库详细步骤:
先用navicat打开本机mysql数据库,创建一个数据库:
在这里插入图片描述
新建数据库:
在这里插入图片描述
然后回来修改django项目的配置文件,在settings中配置数据库jdbc信息:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'husky_ad_web',
        'HOST': 'localhost',
        'USER': 'root',
        'PASSWORD': 'adqwe123',
        'PORT': '3306'
    }
}

然后跑项目,改django源码,将会出现三种种正常报错:

# 1.出现Did you install mysqlclient?则:
# 安装pymysql(若没安装) 需要重启vscode
pipenv shell进入pipenv环境
pip install pymysql
# 后端根目录__init__.py文件添加
import pymysql
pymysql.install_as_MySQLdb()
# 2.出现mysqlclient 1.3.13 or newer is required; you have 0.9.3.则修改django\db\backends\mysql\base.py文件,将版本号判断那俩行注释掉
# 3.出现str对象没decode属性则注释掉operations.py的判断语句 或者将str.decode修改成str.encode()方法

第一个报错
在这里插入图片描述
在这里插入图片描述
第二个报错
在这里插入图片描述
解决
在这里插入图片描述
第三个报错
在这里插入图片描述
解决,注释掉注释语句
在这里插入图片描述
然后django项目终于起来了;
接着需要迁移数据库:
python manage.py migrate
然后发现mysql数据库中husky数据库中多了django框架admin组件的相关表:
在这里插入图片描述
这时候因为迁移了数据库,没有数据,再创建superuser才能在数据库中看到超级用户的数据:
python manage.py createsuperuser
在这里插入图片描述
现在可以直接将项目中的db.sqlite3删除了,接下来django项目的admin模块的数据都是从我们的mysql数据库中获得的了。

2.1.3.创建一个app作为后端
python manage.py startapp backend

结构如下:
在这里插入图片描述

2.2.react前端

待定

猜你喜欢

转载自blog.csdn.net/qq_33997198/article/details/103972513