python是我从很早就接触,但没有怎么学的一门语言,人工智能、机器学习、爬虫等功能是它的专长,最近发现一些很有用的功能用php、node都无法实现,于是想去研究怎么搭建python web框架的项目

首先要写代码那比少不了一个好的IDE,这里不要说肯定要用PC(Pycharm),它支持python所有框架的一键搭建,语法提示非常到位,对新手非常友好,下面我们开始学习怎么在宝塔部署django框架

在上传项目文件的时候,我们需要先配置好项目所有的环境依赖包,有个命令必须要知道,就是

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左右