python web技术栈总结 - Go语言中文社区

python web技术栈总结


快过年了,想看一下目前情形下python web相关主流技术栈的技术选型更新情况,特此记录(之前都记在个人的notion中,不方便在更多设备中查看,觉得还是博客方便些)
另外,想在过年期间好好整理一下比较喜欢的技术栈。

1.技术栈选型

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中添加)

2.个人前后端分离项目步骤 python3.8 django3.0 vue

1.后端项目创建准备步骤

环境管理,之前的项目使用的是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里面输入的)
在这里插入图片描述
这里检验没问题。

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

结构如下:
在这里插入图片描述
然后需要去创建vue前端项目,我得目标是可以将前端部分放到webstorm开发,在动态修改代码的同时,开发服务器就能反馈出前端修改的效果。

2.前端项目准备步骤

用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
访问成功

还是不是很清楚前后端分离的本质

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_33997198/article/details/103972513
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢