定时任务(Mysql和Postgresql 综合版)

1. 传输文件

1.1 安装VMWare tools

左上角虚拟机 -- 安装VMWare tools ,下载完成后

image-20200807094731682

移动到任意文件夹中,解压到当前文件夹

image-20200807100459522

右键打开终端,cd到vmware-tools-distrib目录,输入命令:

sudo ./vmware-install.pl

出现第一个画面时,选择“y”回车, 然后一路回车,安装完成.

image-20200807100920218

重启电脑,重新进入,安装vmware tools即生效。鼠标和复制粘贴就生效了。

关闭虚拟机

虚拟机 -- 设置

image-20200807101815080

选项--共享文件夹 -- 总是启用 -- 添加

image-20200807101954234

设置windows中共享文件的路径

image-20200807102102170

点击完成

image-20200807102112469

点击确定

image-20200807102221220

在/mnt/hgfs目录下可以找到共享文件,将其拖动到左侧

image-20200807102638689

将项目文件拷贝到共享文件中

image-20200807154136047

复制文件到opt下的mywork目录中

sudo cp -r /mnt/hgfs/timetask_share/JobCenter /opt/mywork

image-20200807154153000

2. 环境

2.1 安装pycharm

准备好压缩包和破解文件,放入共享目录

image-20200807105956017

在虚拟机中,将文件拷贝到自定义目录

image-20200807110234881

解压到当前文件

sudo tar -xzvf pycharm-professional-2020.1.2.tar.gz 

打开终端,进入pycharm-2020.1.2/bin

sh ./pycharm.sh

image-20200807111426007

下一步,直到出现验证激活码,选择免费试用30天

image-20200807111615225

创建一个新项目

image-20200807111729633

将之前共享文件夹中的 jetbrains-agent.jar 放到pycharm的bin目录下

sudo cp /home/yang/Downloads/jetbrains-agent.jar /home/yang/programfiles/pycharm-2020.1.2/bin

image-20200807112139952

回到Pycharm -- 右上角Help -- Edit Custom VM Options

image-20200807112341923

输入对应路径的jebrains-agent.jar

-javaagent:/home/yang/programfiles/pycharm-2020.1.2/bin/jetbrains-agent.jar

image-20200807112813586

拖动到当前文件

image-20200807112922604

重启,成功

image-20200807113204841

2.2 python3.7

2.2.1 准备

安装依赖包

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev


sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev

2.2.2 下载安装文件

# 下载到指定位置
cd /home/yang/Downloads
sudo wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

# 解压
sudo tar xzf Python-3.7.0.tgz

image-20200807115835087

2.2.3 安装路径

sudo mkdir -p /usr/local/python3

2.2.4 编译安装

执行这步是后面最好加上 --enable-optimizations 会自动安装pip3及优化配置

cd Python-3.7.0
sudo ./configure --prefix=/usr/local/python3 --enable-optimizations
sudo make
sudo make install

2.2.5 检查软链接

python3 -V
pip3 -V

# 若存在旧python3版本,备份旧版软链接
mv /usr/bin/python3 /usr/bin/python3.5
mv /usr/bin/pip3 /usr/bin/pip3.5

#添加python3的软链接
sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7
#添加 pip3 的软链接
sudo ln -s /usr/local/python3/bin/pip3.7  /usr/bin/pip3.7

2.3 安装mysql

2.3.1 准备

sudo apt-get update
sudo apt-get install net-tools
sudo apt-get install vim

2.3.2 安装

sudo apt-get install mysql-server mysql-client

输入如下命令进行检验是否安装mysql成功。

sudo netstat -tap | grep mysql

image-20200807144451238

2.3.3 设置

mysql默认只允许本地主机访问127.0.0.1

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

进入后按insert 进入编辑模式

  1. 将绑定的地址注释

image-20200807145159738

2 ) 由于安装的mysql没有跳出设置初始密码 以root进入的时候会被密码拦住

​ 这里设置跳过密码验证

image-20200807145925501

注释后按Esc退出编辑模式

输入 :wq! 退出

image-20200807145308076

默认关闭了远程连接,因此要去打开远程连接,并修改配置允许其他ip访问.

如果后续仍然有报错,可以将127.0.0.1 改为 0.0.0.0 允许任何人连接(之后会设置账号密码),问题解决

2.3.4 重启

`/etc/init.d/mysql restart` 或者 service mysql restart

image-20200807145516164

此时进入数据库无需密码

mysql -uroot

image-20200807150106720

2.3.5 设置root密码

  1. 查看user表
select user, plugin from mysql.user;

image-20200807150225003

  1. 修改root的plugin
use mysql;
UPDATE user SET plugin='mysql_native_password' WHERE User='root';

image-20200807150601610

刷新权限,再次查看

flush privileges;
select user, plugin from mysql.user;

image-20200807150708889

修改一下root的密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 
# 比如我的   '你的密码'   替换为 '123456'

flush privileges;

image-20200807151133035

之后记得别忘了将原先配置文件中的跳过密码验证给取消注释~

到这里你就可以在虚拟机里使用root账号和密码连接数据库了.

如果想在主机或局域网其他主机连接数据库还需要更进一步的配置:

查看host

select host , user from user;

image-20200807151611083

发现root对应是在localhost下的, 也就是说,mysql默认root是用来给本地连接使用的

那么我们再创建一个超级管理员用户,专门来进行远程访问

创建用户 boss

CREATE USER 'boss'@'%' IDENTIFIED BY '123456';

赋予权限

grant all privileges on *.* to 'boss'@'%';

刷新数据库账户权限

flush privileges;

刷新权限之后,重新查询。

select user,host from user;

image-20200807152047384

退出

\q

image-20200807152156021

mysql -u boss -p
输入密码

创建数据库
create database timetask character set utf8 collate utf8_general_ci;

注释掉/etc/mysql/mysql.conf.d/mysqld.cnf中添加的跳过密码的语句

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

image-20200807152413767

Esc推出编辑模式

:wq! 保存并退出

重启mysql数据库服务器

service mysql start

之后就可以创建数据库并顺利连接到项目了~

2.4 安装chorme ubuntu版

sudo apt-get install chromium-browser

2.5 Postgresql

安装依赖

sudo apt-get install libpq-dev python-dev

安装驱动

sudo apt-get install python-psycopg2

postgres

sudo apt-get install postgresql

切换到Linux的postgres用户下

sudo su postgres

登陆postgresql

psql postgres

image-20200808140258777

设置管理员密码

ALTER USER postgres with PASSWORD 'postgres'

创建数据库

CREATE DATABASE timetask;

修改项目中的config.py

POSTGRESQL_URL='postgresql+psycopg2://postgres:postgres@127.0.0.1:5432/timetask'

替换定时器的设置

image-20200808143155188

image-20200808143210888

\q 退出

目前项目可以访问本地数据库了

如果我们需以主机的ip访问本地数据库的话 还需要进一步设置:

修改 postgresql.conf文件

修改/etc/postgresql/对应你的版本/main目录下的 postgresql.conf文件

# 如果用户为postgresql 记得先exit退出 回到本机用户
exit

cd /etc/postgresql/10/main
sudo vim postgresql.conf

image-20200808143955390

image-20200808144033797

找到listen_addresses = 'localhost'

改为:

image-20200808144958396

image-20200808145048419

ESC退出编辑模式

-- wq!保存

修改pg_hba.conf文件

image-20200808145531615

设置添加允许的访问主机

image-20200808151730049

重启服务生效

sudo service postgresql restart

配置完成

3. 运行

给项目增加文件权限

sudo chmd -R 777 JobCenter

image-20200807154550594

安装pipenv

sudo pip install pipenv -i https://mirrors.aliyun.com/pypi/simple/

实在不行就

pip install pipenv
pipenv install --dev

image-20200807164913691

$ pipenv shell

image-20200807164944867

flask init # 创建数据库

image-20200807165916350

flask run

image-20200808152629144

4. 部署

4、uwsgi安装与配置**

pip换源

在Windows下:
C:\Users\Administrator\下新建pip文件夹,在创建pip.ini文件,拷贝下面代码进去,保存。

在linux下:
sudo vim ~/.pip/pip.conf

替换为:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

进入项目虚拟环境目录下的bin文件,即:项目根目录/venv/bin

pipenv install uwsgi -i https://mirrors.aliyun.com/pypi/simple/

如果报错:

File "/tmp/pip-install-q21no8ws/uwsgi/uwsgiconfig.py", line 755, in __init__
raise Exception("you need a C compiler to build uWSGI")
 Exception: you need a C compiler to build uWSGI

# 输入
sudo apt-get install gcc 

#实在不行就安装build-essential
02、键入以下命令安装build-essential软件包:

linuxidc@linuxidc:~/www.linuxidc.com$ sudo apt install build-essential

该命令将安装一堆新包,包括gcc,g ++和make。

03、要验证GCC编译器是否已成功安装,请使用gcc --version命令打印GCC版本:

linuxidc@linuxidc:~/www.linuxidc.com$ gcc --version

Ubuntu 18.04存储库中可用的默认GCC版本是7.4.0:



#ubuntu
sudo apt-get install python3.7-dev

修改启动文件webhook.py rename为 manage.py

from flask_script import Manager
from app import create_app

app =create_app()
manager = Manager(app)

if __name__ == '__main__':
    manager.run()
    
# 即可测试
python manage.py runserver

进入项目根目录,新建目录

# 新建 uwsgi.ini

[uwsgi]

# 当载入的时候, Uwsgi的IP和端口
http=192.168.136.130:5001

# 对应web项目的主目录
chdir=/home/yang/mywork/JobCenter/

# 虚拟环境位置
 virtualenv=/home/yang/.local/share/virtualenvs/JobCenter-6lJXnf_S

# 启动文件
wsgi-file=manage.py

# The application variable of Python Flask Core Oject
callable=app

# The maximum numbers of Processes
processes=3

# The maximum numbers of Threads
threads=2

运行测试~

`uwsgi --ini uwsgi.ini`

Ctrl+C 结束运行。

如何实现 编辑弹出修改定时任务的功能

将定时任务的div 复制到想加入到的地方

将原本由后端渲染的wtf_qick_form替换为前端生成的form表单.

将填入的新值传给后端, 后端更新数据

posted on 2020-08-14 11:49  sunnywillow  阅读(290)  评论(0编辑  收藏  举报