flask项目部署至虚拟机

安装虚拟机以及ubuntu系统https://blog.csdn.net/weixin_49722641/article/details/108630299

一、windows与linux的设计理念有根本性的区别:
windows:用户不知道自己想要什么,也不明白自己在做什么,更不打算为自己的行为负责。
因为windows将所有操作都隐藏起来,只给用户提供封装好的功能,用户只能在操作系统限制的范围内操作,如果是普通用户,会觉得很windows很舒服,因为不需要思考。只需要按照指示去操作。但对于开发人员而言,这种设计理念是无法接受的,一旦要做出一些超越封装好的功能之外的事情,就会出现各种难以意料的情况,而且很多情况下,这些问题是无解的。或者只能用极其蹩脚扭曲的方式去勉强处理。
linux:用户知道自己想要什么,也明白自己在做什么,并且会为自己的行为负责。
linux将所有操作权都交给了用户,相信用户是理性的聪明的,忠实地执行用户的指令,向用户暴露所有的细节。用户在拥有自主权的同时也拥有了破坏力,因此普通用户根本无法驾驭,可能一个指令就把操作系统弄崩溃了。对于开发者而言,linux的开放与自由给了无限的可能性,能看到程序是如何运行的,运行报错也会有友好的提示。根据报错指引往往能将问题解决。

二、ubuntu安装python3及虚拟环境
点击右键选择终端
1.安装pip3

sudo apt install python3-pip

2.安装虚拟环境

sudo apt install virtualenv
sudo apt install virtualenvwrapper

3.修改配置文件设置环境变量

sudo apt install vim
cd ~
vim .bashrc

在.bashrc文件后面加入下面两行

export WORKON_HOME=$HOME/.virtualenvs 
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

4.启用配置文件

cd ~
source .bashrc

5.设置root密码以及转到root用户上

sudo passwd root :zxy******
su root
cd /home
mkdir virtualevirment_make # 创建项目目录
sudo find / -name 'virtualevirment_make' # /home/virtualevirment_make

6.创建虚拟环境
安装venv模块,进入项目目录后,执行

apt-get install python3-venv
python3 -m venv venv

7.激活虚拟环境
在开始工作前,先要激活相应的虚拟环境:

. venv/bin/activate
(venv) root@zxy-virtual-machine:/home/virtualevirment_make$  # 激活后,终端提示符会显示虚拟环境的名称

8.安装相应模块,如:

pip install Flask
pip list 查看安装的包
mkdir untitled # 创建项目目录

9.查看虚拟机ip

ifconfig -a # 192.168.112.128

在本机cmd窗口下可以ping通即可 ping 192.168.112.128

三、pycharm连接虚拟机(新建项目)

1.新建项目flask,添加python解释器,选择ssh解释器,输入host以及username zxy,输入密码即可 zxy****
2.输入解释器的路径which python3 /home/virtualevirment_make/venv/bin/python3 ,确认后选择项目在虚拟机上存储的地址(虚拟机新建的项目地址pwd /home/virtualevirment_make/untitled)
若中间连接出现问题,可查看密码以及ssh服务是否开启

sudo ps -e | grep ssh  # 使用命令查看,若返回结果为“xxxx? 00:00:00 sshd”,代表服务开启
sudo /etc/init.d/ssh start  # 若无反应,使用命令开启服务
sudo apt-get update  # 若找不到命令
sudo apt-get  install openssh-server
sudo ps -e | grep ssh  # 等待安装结束再次查看服务有没有启动 
sudo service ssh status  # 查看服务状态
sudo service ssh stop  # 关闭服务
sudo service ssh restart  # 重启服务

3.在tools中点击development–configeration 测试connect 填写映射文件夹,在tools中选择upload to 上传,出现问题:

Failed to transfer file 'C:\Users\Administrator\Desktop\untitled\pypu.py': could not write to "sftp://192.168.112.128/home/virtualevirment_make/pypu.py". (Permission denied)

解决:

cd /home/virtualevirment_make
sudo chmod 777 untitled -R

再次尝试即可。
测试文件目录

app.py

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
	return 'Hello World!'
if __name__ == '__main__':
	app.run(host='0.0.0.0',debug=True) # 必须为0.0.0.0

等待上传后在虚拟机中ls查看文件
4.在虚拟机/home/virtualevirment_make/untitled目录下运行 python app.py runserver此时可以在虚拟机的火狐浏览器输入http://127.0.0.1:5000/ 或 http://0.0.0.0:5000/查看。
本机使用虚拟机ip访问 http://192.168.112.128:5000/

四、现有项目上传
1.在pycharm的teminal中 pip freeze >requirements.txt 将项目用到的包及文件总结到txt文件中,设置中连接虚拟机服务器,配置上传路径时在虚拟机中 mkdir flask_blog并赋予权限sudo chmod 777 flask_blog -R选择其作为上传路径。
2.等待收集且上传完成,进入目录下/home/virtualevirment_make/flask_blog输入tree即可显示目录结构。
3.进入虚拟环境 安装依赖包 pip install -r requirements.txt 再使用pip list查看已安装包,也可以通过setting中的加号进行安装包,此时所需的包已经安装完毕。

五、ubuntu安装mysql
1.先查看mysql是否存在

sudo dpkg -l | grep mysql

2.安装MySQL

sudo apt install mysql-server

3.如出现报错E: Unable to locate package mysql-server,使用命令 sudo apt-get update 更新软件源,安装完成之后可以使用如下命令来检查是否安装成功

sudo netstat -tap | grep mysql
sudo systemctl status mysql # 查看mysql状态

4.系统将要求配置VALIDATE PASSWORD PLUGIN用来测试MySQL用户密码强度并提高安全性的密码,设置MySQL root用户的密码,以后用y回答所有问题。

sudo mysql_secure_installation

5.以root用户身份登录到MySQL服务器

sudo mysql

6.将身份验证方法从更改auth_socket为mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;

7.登录mysql数据库可以通过如下命令

sudo mysql -u root -p

8.-u 表示选择登陆的用户名, -p 表示登陆的用户密码,Enter password:处输入密码,就能够进入mysql数据库。
进入后创建数据库create database fbwzz; 以及show databases;查看是否创建成功。
9.对于flask里的migration文件夹,建议直接删除,但是若想要本地数据库中的数据可安装navicat进行表和数据的迁移。

windows下安装navicat
https://blog.csdn.net/asty9000/article/details/101443379
点击 navicat121_premium_cs_x64.exe安装到:D:\wendang\navicat_ins中
点击另一个exe文件选择安装路径下的navicate激活。
10.navicate远程连接:

sudo mysql -uroot -p
查看 mysql 初始的密码策略
SHOW VARIABLES LIKE ‘validate_password%’;
set global validate_password.policy=LOW;
create user ‘zxy’@’%’ identified by ‘zxy****’;
GRANT ALL PRIVILEGES ON . TO ‘zxy’@’%’;
ALTER USER ‘zxy’@’%’ IDENTIFIED WITH mysql_native_password BY ‘zxy****’;
flush privileges;
使用 exit 命令退出后,修改 mysql 的配置文件,进入mysql安装目录的etc/mysql/mysql.conf.d处,打开终端,并切换root权限,修改mysqld.cnf文件为可修改。 chmod 6666 mysqld.cnf
找到 “bind-address = 127.0.0.1” , 修改为 bind-address = 0.0.0.0 并保存
重新修改权限为只读。 chmod 644 mysqld.cnf
重启mysql服务 service mysql restart
navicat 远程连接:连接–mysql–常规–主机为192.168.112.128,用户名:zxy 密码:zxy****

11.navicat迁移数据库
工具–数据传输–源选本地库和表 目的选虚拟机库和表–数据库对象全选即可。
12.最后检查setting文件中数据库用户名是否为授权的以后,进入虚拟环境,在项目目录下运行python app.py runserver -h 0.0.0.0
本地通过http://192.168.112.128:5000即可访问

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值