社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
快过年了,想看一下目前情形下python web相关主流技术栈的技术选型更新情况,特此记录(之前都记在个人的notion中,不方便在更多设备中查看,觉得还是博客方便些)
另外,想在过年期间好好整理一下比较喜欢的技术栈。
python与django
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中添加) |
环境管理,之前的项目使用的是pipenv去创建独立的项目环境,pipenv用pip安装即可。
pip install pipenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
创建项目的话,简单回忆下,是这样一个步骤创建目录并进入,pipenv install,pipenv shell进入虚拟环境,pip install django==3.0.2
检查有没有安装任何第三方炸药包:
pip从豆瓣库安装指定版本的django到环境中:
pip install django==3.0.2 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
检查安装情况:
创建后端项目并检查下:
django-admin startproject husky
cd husky
python manage.py runserver
关闭
数据库迁移并创建超级用户
python manage.py migrate
python manage.py createsuperuser
账户密码都是admin
如果换成mysql数据库,修改settings迁移数据库,删掉db.sqlite3
换成mysql库:
先在settings中配置数据库jdbc信息:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'husky',
'HOST': 'localhost',
'USER': 'root',
'PASSWORD': 'root',
'PORT': '3306'
}
}
然后跑项目,会出现两种正常报错:
跑django项目出现Did you install mysqlclient?则:
后端根目录__init__.py文件添加
import pymysql
pymysql.install_as_MySQLdb()
并在项目中安装pymysql(若没安装)
pipenv shell进入
pip install pymysql
出现mysqlclient 1.3.13 or newer is required; you have 0.9.3.则修改djangodbbackendsmysqlbase.py文件,将版本号判断那俩行注释掉
然后不报错了,记得迁移数据库:
python manage.py migrate
然后发现mysql数据库中husky数据库中多了django框架admin组件的相关表:
这时候因为迁移了数据库,没有数据,再创建superuser才能在数据库中看到超级用户的数据:
(这里的操作是在pycharm的terminal里面输入的)
这里检验没问题。
python manage.py startapp backend
结构如下:
然后需要去创建vue前端项目,我得目标是可以将前端部分放到webstorm开发,在动态修改代码的同时,开发服务器就能反馈出前端修改的效果。
用vue-cli创建前端项目frontend:
vue-init webpack frontend
cd frontend
npm install
npm run build
npm run dev
跑起来查看前端效果
打包完成后会生成dist文件 内有index.html和文件夹static
配置Django指向index.html
配置ulb_manager/urls.py文件
from django.views.generic.base import TemplateView
urlpatterns = [
path('admin/', admin.site.urls),
path(r'', TemplateView.as_view(template_name="index.html")),
]
配置ulb_manager/settings.py文件:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['frontend/dist'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# Add for vue.js
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "frontend/dist/static"),
]
跑django项目:
python manage.py runserver
访问成功
还是不是很清楚前后端分离的本质
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!