Python Web项目部署详细教程

这篇具有很好参考价值的文章主要介绍了Python Web项目部署详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

python web环境搭建,python,前端,开发语言,linux,centos
本质三件事:

  • 租个服务器(含公网ip) + 配置项目运行所需环境
  • 代码上传服务器
  • 程序运行起来

二、购买服务器

python web环境搭建,python,前端,开发语言,linux,centos

1、简单介绍

在阿里云、腾讯云或者其他平台购买一台服务器。
本文以 阿里云 + centos 7.9操作系统来进行操作。
根据需要为服务器选择合适的:CPU内核数量、内存大小、磁盘大小、带宽大小…
同时为该服务器设置登录的用户名和密码,后期登录该服务器。同时获得一个公网ip,用于连接该服务器。

2、为什么使用Linux系统

  • Windows系统:收费 + 图形化界面慢
  • Linux系统:开源+可以选择非图形化

3、使用Xshell连接服务器

本地下载安装Xshell:https://www.xshell.com/zh/xshell-download/
方式一:
python web环境搭建,python,前端,开发语言,linux,centos
python web环境搭建,python,前端,开发语言,linux,centos
方式二:也可以直接Xshell命令行中直接输入:

ssh root@101.201.52.143

弹出的验证框中输入密码即可
python web环境搭建,python,前端,开发语言,linux,centos
出现这个界面则表示连接成功:
python web环境搭建,python,前端,开发语言,linux,centos

三、配置服务器

1、关于端口

ip地址:定位电脑(服务器)
端口:定位程序

端口 应用程序
22 SSH
3306 MySQL
6379 Redis
80 http
443 https

2、配置服务器的安全组(入方向)

目的:配置服务器的开放端口,使得可以通过ip+端口远程连接对应的服务。
python web环境搭建,python,前端,开发语言,linux,centos
根据需要开放对应的端口。

四、上传代码

1、下载并安装git

百度网盘链接:https://pan.baidu.com/s/1MWce-lSTlnt5xRP1VGXFBw
提取码:ggit
安装成功在电脑任意位置右键出现git bash here和git gui here如下:
python web环境搭建,python,前端,开发语言,linux,centos

2、将项目代码上传gitee仓库

gitee官网:https://gitee.com/
完成登录后,点击右上角创建仓库:
python web环境搭建,python,前端,开发语言,linux,centos
仓库名称一般就是项目代码名称,方便对应,填好名称点击创建即可。
仓库地址:https://gitee.com/kd_harden_iring/test

3、本地项目,用一个简单的flask项目示例

python web环境搭建,python,前端,开发语言,linux,centos

4、在项目的根目录下配置一个.gitignore文件,使得使用git上传代码时可以忽略一些文件,比如.venv,.idea是本机的虚拟文件不需要上传

直接使用别人写好的:https://github.com/github/gitignore/blob/main/Python.gitignore

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
#   For a library or package, you might want to ignore these files since the code is
#   intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# poetry
#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
#   This is especially recommended for binary packages to ensure reproducibility, and is more
#   commonly ignored for libraries.
#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
#   in version control.
#   https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#  and can be added to the global gitignore or merged into this file.  For a more nuclear
#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

5、使用git的相关命令进行上传

1)配置自己的相关信息(便于协同项目区分是谁上传的)

任意位置右键,git bash here出现git命令行窗口输入(一次性命令):
git config --global user.name “yjx”
git config --global user.email “3360@163.com”
python web环境搭建,python,前端,开发语言,linux,centos

2)进入自己项目的目录(pycharm中右键–》打开于–》Explorer)

python web环境搭建,python,前端,开发语言,linux,centos
在该位置右键,点击git bash here再依次输入:

git init
git remote add origin https://gitee.com/kd_harden_iring/test
注意:git  init执行后可以看到在当前目录下生成了一个空的.git本地仓库
git remote add 别名代指远程仓库地址(下次使用)  远程仓库的地址(注意替换为自己在gitee中生成的远程仓库链接)

python web环境搭建,python,前端,开发语言,linux,centos

3)继续在git bash here中输入:

git add .
git commit -m 'init'
git push origin master
'init'为了标识每次提交的说明,输入以上三句即可完成将代码提交到gitee远程仓库。

注意:执行第三句会弹出输入账号和密码,这个账号和密码是gitee网站的账号和密码
python web环境搭建,python,前端,开发语言,linux,centos
执行后即可在gitee仓库中看到如下内容:
python web环境搭建,python,前端,开发语言,linux,centos

4)提交之后如果后期有修改,同样到项目根目录,git bash here再输入以上三个命令:

git add .
git commit -m 'update_module'
git push origin master

即可更新仓库,同步本地和远程仓库的代码。

五、服务器拉取远程仓库的代码

1、使用xShell连接服务器,安装git

yum install git -y

python web环境搭建,python,前端,开发语言,linux,centos

2、为你的项目在服务器上创建一个文件夹,比如在/data/www/下创建

cd /data/
mkdirs www
cd /data/www/

3、从远程仓库拉取项目代码

git clone https://gitee.com/kd_harden_iring/test
前面生成的gitee仓库的连接,切换为自己的

python web环境搭建,python,前端,开发语言,linux,centos

六、服务器中安装环境

Python3.9.5
虚拟环境
uwsgi:接收用户的请求,高效
nginx:反向代理请求,分类用户请求,转发用户请求
python web环境搭建,python,前端,开发语言,linux,centos

1、安装Python3.9.5

在Xshell中运行以下命令:
python web环境搭建,python,前端,开发语言,linux,centos
注:执行yum install mysql-devel -y可能会报错,具体解决:

  • 先执行wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
  • 再执行rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  • 最后执行yum install mysql-devel -y

下载Python3.9.5源码:

yum install wget -y
cd /data/
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz

解压—编译—安装:

tar -xvf Python-3.9.5.tgz
cd Python-3.9.5.tgz
./configure
make all
make install

Python解释器配置豆瓣源:

pip3.9 config set global.index-url https://pypi.douban.com/simple/

2、虚拟环境配置

1)安装 virtualenv

pip3.9 install virtualenv

2)创建虚拟环境(一般是一个项目一个虚拟环境)

mkdir /envs
cd /envs/
virtualenv /envs/test --python=python3.9

python web环境搭建,python,前端,开发语言,linux,centos

3)激活虚拟环境

source  /envs/test/bin/activate
pip install flask

python web环境搭建,python,前端,开发语言,linux,centos

4)在虚拟环境中运行代码(类似本地运行)

python web环境搭建,python,前端,开发语言,linux,centos

3、uwsgi安装

1)安装uwsgi

激活虚拟环境,在虚拟环境中安装
source  /envs/test/bin/activate
pip install uwsgi

python web环境搭建,python,前端,开发语言,linux,centos

2)基于uwsgi配置文件的方式运行flask项目

cd /data/www/test/
vim test_uwsgi.ini

编写uwsgi的配置文件:

	[uwsgi]
	socket = 127.0.0.1:8001
	chdir = /data/www/test/
	wsgi-file = app.py
	callable = app
	processes = 1
	virtualenv = /envs/test/

python web环境搭建,python,前端,开发语言,linux,centos
python web环境搭建,python,前端,开发语言,linux,centos

3)启动uwsgi的方式:

uwsgi --ini test _uwsgi.ini

python web环境搭建,python,前端,开发语言,linux,centos

4、Nginx安装

1)安装nginx

yum install nginx -y

2)修改配置nginx

vim /etc/nginx/nginx.conf

python web环境搭建,python,前端,开发语言,linux,centos

3)设置nginx开机自启动并启动nginx服务

systemctl enable nginx
systemctl start nginx

如果无法启动80端口被占用,输入以下命令查看并关闭相关进程:

lsof -i:80       80端口被占用的问题查看

python web环境搭建,python,前端,开发语言,linux,centos
如上:关闭httpd即可
再次启动nginx即可成功:systemctl start nginx

七、服务器运行程序并通过公网进行访问测试

nginx启动后,依次执行以下语句即可拉起test项目

source /envs/test/bin/activate
cd /data/www/test/
uwsgi --ini test_uwsgi.ini >nohup.out

浏览器中输入你服务器的公网ip,即可看到你的项目
python web环境搭建,python,前端,开发语言,linux,centos

python web环境搭建,python,前端,开发语言,linux,centos

注意:

每个项目所依赖的库不同,需要你在虚拟环境中下载对应的使用到的库。

文章参考

B站链接:
https://www.bilibili.com/video/BV1gR4y1D7qe?p=1&vd_source=d017010c9713a9f8e98390906782f3ef文章来源地址https://www.toymoban.com/news/detail-730187.html

到了这里,关于Python Web项目部署详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium+python web自动化测试框架项目实战实例教程

    自动化测试对程序的回归测试更方便。 由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行... 可以运行更加繁琐的测试 自动化测试的一个明显好处就是可以在很短的时间内运行更多的测试。学习自动化测试最终目的是应用到

    2024年02月06日
    浏览(60)
  • flask+Python+Vue实现前后端分离的web项目并部署至云服务器

    1 后台+算法模型 1.1 训练机器学习模型 1.2 基于Flask框架搭建后台接口 注意:前后端跨域问题,可引入CORS解决,具体如代码: 2 前端搭建 3 云服务器部署 详细设置教程可参考linux CentOS 宝塔面板安装设置教程 安装Nginx和python项目管理器,后续可在面板上操作,完成项目打包上传

    2024年02月07日
    浏览(64)
  • Linux部署web项目/springboot项目(详细步骤)

    小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下! 也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习,让我们共同进步,欢迎关注! 目录 一、安装jdk 1:问题 1.1Openj

    2024年02月03日
    浏览(36)
  • 【Web】vue开发环境搭建教程(详细)

    【Vue】vue增加导航标签 本文链接:https://blog.csdn.net/youcheng_ge/article/details/134965353 【Vue】Element开发笔记 本文链接:https://blog.csdn.net/youcheng_ge/article/details/133947977 【Vue】vue,在Windows IIS平台部署 本文链接:https://blog.csdn.net/youcheng_ge/article/details/133859117 【Vue】vue2与WebApi跨域CORS问

    2024年02月09日
    浏览(55)
  • IDEA 构建web项目-详细教程

    1、点击File,选择New,然后点击Project 2、选择Empty Project,然后点击Next 3、新建一个项目 4、在新建完项目后,点击Finish后会弹出Open Project这个窗口,建议选择New Window 5、在Project Structure中选择Project Settings -- Modules -- 点击+号 Add New Module --- 选择java,完成后点击Next 6、在New Module 中 给

    2024年02月03日
    浏览(94)
  • Stable Diffusion web UI 部署详细教程

    本文使用 AutoDL 平台进行 Stable Diffusion web UI 云端部署 AutoDL 官网:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL Stable Diffusion web UI 官网:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com) 租用实例 选择社区镜像 AUTOMATIC1111/stable-diffusion-webui/NovelAI-Consolidation-Package-3.1

    2024年02月11日
    浏览(44)
  • idea构建web项目-超详细教程

    idea构建web项目的超级详细教程,一步一步来,完全没问题! 1、新建一个空项目 2、新建java模块,名为webDemo1 3、选择webDemo1右键,选择Add Framework Support 选择Web Application 4、在WEB-INF下新建文件夹classes和lib 5、打开项目结构(Project Structure) 6、项目配置 7、模块配置 8、Facets配置,这

    2024年02月02日
    浏览(42)
  • 超详细的tomcat部署web项目与idea中配置web项目方法及常见问题解决方法

    本文章主要介绍tomcat环境的配置,idea有/无骨架配置web项目,idea一般项目中配置tomcat,配置jsp运行环境,便捷配置jsp环境的配置,及常见的问题,内容有点长,建议点击目录跳转阅读,文中所含均为官方文件,请放心使用。 下载tomcat 配置tomcat当然是先下载tomcat啦,tomcat为绿

    2024年01月17日
    浏览(56)
  • Web项目部署环境搭建:JDK + Tomcat + IDEA +MySQL

    出来混总是要还的,记得大学本科四年,并不喜欢java以及web后端,把前端Html、css、JavaScript修炼得还可以之后,小组作业就一直抱各位大佬的大腿,大腿带我飞。就这样混过了本科的所有实践课。虽然研究生阶段也要用到编程语言,面向对象还有各种算法编程也是躲不掉的,

    2024年02月06日
    浏览(54)
  • k8s内网环境部署web项目(tomcat+mysql)

    本篇k8s版本为1.18, 容器运行时为docker 注 : kubernetes从1.24版本开始, 移除了对docker的支持, 采用containerd作为容器运行时 准备包含web项目的tomcat压缩包,jdk压缩包 在上一步的目录下编写dockerfile文件 构建镜像 选项: -t 给镜像加一个Tag myweb 镜像名称 v1 镜像版本号 . 表示当前目录,即

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包