一、开发测试环境介绍
前提已经部署完【基于Python+Flask项目部署系列--02】Ubuntu16.04服务器安装。建议部署2套环境:开发测试环境+生产环境。
这篇文章主要讲解测试环境如何配置python flask项目与运行。
测试环境主要使用【虚拟环境】进行部署代码部署,持续开发,测试验证等任务
二、开发测试环境
1.预先约定MySQL的账号如下,分别对应root,admin,develop
root=====qwe123
admin====Root110qwe
develop==QWEqwe123
2.虚拟环境的配置
- 安装python2:sudo apt-get install python
- 下载pip文件:wget https://bootstrap.pypa.io/get-pip.py
- 分别给python2和python3安装pip
- sudo python get-pip.py
- sudo python3 get-pip.py
- 下载虚拟环境包:sudo pip3 install virtualenv
- virtualenvwrapper是在virtualenv上再次封装的一个包,会让使用虚拟环境更加方便
sudo pip3 install virtualenvwrapper
sudo pip2 install virtualenvwrapper
如果国外的源太慢了,可以换成国内的镜像,只需要加上地址就行
sudo pip2 install -i https://pypi.douban.com/simple virtualenvwrapper - 创建虚拟环境管理目录:mkdir $HOME/.virtualenvs
- 修改配置vim .bashrc,在文件最后添加如下代码:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh - 运行文件,使修改生效:source ~/.bashrc
- 执行成功之后,就可以创建虚拟环境了
mkvirtualenv -p /usr/bin/python3 py3env
mkvirtualenv -p /usr/bin/python2 py2env
使用方法如下:
workon py3env
退出虚拟环境执行下面的命令:
deactivate
2.安装MySQL
$sudo apt-get install mysql-server
$sudo apt-get install mysql-client
$sudo apt-get install libmysqlclient-dev
安装过程中会要求输入MySQL的root用户的密码,我这里采用的是qwe123(弹窗页面亮瞎)
- 安装完成之后登录数据库
mysql -u root -p
- 我们创建一个管理员用户,和普通用户
#创建管理员(admin)用户
>CREATE USER 'admin'@'%' IDENTIFIED BY 'Root110qwe';
#授予所有的权限
>GRANT ALL ON *.* TO 'admin'@'%';
>GRANT ALL ON *.* TO 'root'@'%' identified by 'qwe123';
#创建普通(develop)用户
>CREATE USER 'develop'@'%' IDENTIFIED BY 'QWEqwe123';
#授予 查询、插入、更新和删除的权限
>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'develop'@'%';
#提交更新,保存修改
>FLUSH PRIVILEGES;
##########################################
- 安装完成之后去
#vim/etc/mysql/mysql.conf.d/mysqld.cnf
其中的bind-address,将默认的127.0.0.1改成0.0.0.0,更改之后,MySQL才允许远程登录。
# service mysql restart
- 登录mysql
$mysql -u root -p
-u 表示选择登陆的用户名,
-p 表示登陆的用户密码,
上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql
- 查看mysql编码
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)
mysql> show variables like '%colla%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.01 sec)
- 全局修改字符编码设置为UTF-8
默认情况下,MySQL的字符集是latin1,因此在存储中文的时候,会出现乱码的情况,所以我们需要把字符集统一改成UTF-8,用vi打开MySQL服务器的配置文件my.cnf
$sudo vi /etc/mysql/my.cnf
在[client]标签下,增加客户端的字符编码
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
Mysql服务操作:
#service mysql start
设置开机自动启动mysql:
sysv-rc-conf --level 345 mysql on
3.安装Redis,memcached
- 安装Redis:
sudo apt-get -y install redis-server
安装好之后不需要配置任何东西,使用
ps -ef |grep redis
可以看到redis的服务已经启动。
#apt-get install memcached
4.python2虚拟环境下pip安装需要的模块
root@accelops:~# workon py2env
(py2env) root@accelops:~# 安装如下
pip install flask
pip install flask-wtf
pip install pymysql
pip install sqlalchemy
pip install python-memcached
pip install flask-sqlalchemy -i https://pypi.douban.com/simple
pip install flask-script
pip install Flask-Migrate
pip install PyMySQL
pip install pbkdf2
pip install redis
pip install pillow
pip install celery