2021-08-08
python是我从很早就接触,但没有怎么学的一门语言,人工智能、机器学习、爬虫等功能是它的专长,最近发现一些很有用的功能用php、node都无法实现,于是想去研究怎么搭建python web框架的项目
首先要写代码那比少不了一个好的IDE,这里不要说肯定要用PC(Pycharm),它支持python所有框架的一键搭建,语法提示非常到位,对新手非常友好,下面我们开始学习怎么在宝塔部署django框架
在上传项目文件的时候,我们需要先配置好项目所有的环境依赖包,有个命令必须要知道,就是
1 | pip freeze>requirements.txt |
相当于是node中的package.json或者php中的composer.json吧(根据以往经验)
这样我们创建依赖文件的时候,能减少引入一些不必要的包。
遇到的坑:
1.name ‘os’ is not defined
解决方法:在settings.py文件里from pathlib import Path 后加 import os
2.django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17)
方法一:给Django降级
方法二:升级SQLite
方法三:打开site-packages/django/db/backends/sqlite3/base.py
下翻找到 check_sqlite_version 这个函数,把 if Database.sqlite_version_info < (3, 8, 3): 注掉,改成
if Database.sqlite_version_info < (3, 6, 3):
1.先要上传django文件夹的全部到/www/wwwroot/ 上的文件夹中,通过WebHook上传git代码,之后打开python项目管理器
2.现在我们开始创建 python 项目。打开首页的 python 项目管理器,点击 添加项目。填充数据:
- 项目名称: 自定义就行
- 路径: 定位到 manage.py 文件所在的路径
- Python 版本: 选择你项目对应的 python 版本
- 框架: 选择 Django
- 启动方式: uswgi
- 启动文件/文件夹: 根目录就行
- 端口: 自定义就行,django默认8000,flask默认5000
- 勾选上 是否安装模块依赖 与 开机启动
点击确定,然后等待创建。
3.映射域名
4.放行端口
5.域名解析
部署成功,但是发现uswgi方式下内存占用很大,200MB+,卧槽,node才30MB,python 200MB?
最后我对比了下Django和Flask,发现Flask是个轻量级框架,非常适合搭建API,于是放弃django,开始搭建flask,参数和之前大体一样,不同的是:启动文件为app.py,框架为flask,端口为5000,生成依赖后上传到服务器,开始部署,发现内存占用还是200MB+,
因为用的是uswgi,起初我用gunicorn的启动方式,一直报错:
ModuleNotFoundError: No module named ‘typing’ 或者 ModuleNotFoundError: No module named ‘py’
后来我升级了python的版本(3.8.5),换了一种叫做gunicorn的启动方式,发现占用优化了很多,在70MB左右