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.技术栈选型
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 |
- python和django
djnago选2.2
,理由是Django2.2LTS支持到2022年
- 从django支持的版本就可得到:1.11和2.2为长期支持版本,对应的最新版本分别是
1.11.29
与2.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前端
待定