【基于Python+Flask项目部署系列--03】开发测试环境配置-基于Ubuntu16.04

一、开发测试环境介绍

前提已经部署完【基于Python+Flask项目部署系列--02】Ubuntu16.04服务器安装。建议部署2套环境:开发测试环境+生产环境。

这篇文章主要讲解测试环境如何配置python flask项目与运行。

测试环境主要使用【虚拟环境】进行部署代码部署,持续开发,测试验证等任务

二、开发测试环境

1.预先约定MySQL的账号如下,分别对应root,admin,develop

root=====qwe123
admin====Root110qwe
develop==QWEqwe123

2.虚拟环境的配置

  1. 安装python2:sudo apt-get install python
  2. 下载pip文件:wget https://bootstrap.pypa.io/get-pip.py
  3. 分别给python2和python3安装pip
    • sudo python get-pip.py
    •   sudo python3 get-pip.py
  4. 下载虚拟环境包:sudo pip3 install virtualenv
  5. virtualenvwrapper是在virtualenv上再次封装的一个包,会让使用虚拟环境更加方便
    sudo pip3 install virtualenvwrapper
    sudo pip2 install virtualenvwrapper
    如果国外的源太慢了,可以换成国内的镜像,只需要加上地址就行
    sudo pip2 install -i https://pypi.douban.com/simple virtualenvwrapper
  6. 创建虚拟环境管理目录:mkdir $HOME/.virtualenvs
  7. 修改配置vim .bashrc,在文件最后添加如下代码:
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
  8. 运行文件,使修改生效:source ~/.bashrc
  9. 执行成功之后,就可以创建虚拟环境了
    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

转载于:https://www.cnblogs.com/forfreewill/articles/10223595.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习

机器学习 sklearn基础功能: 主要使用python的sklearn库:sklearn库共分为6大部分,分别用于完成分类任务、回归任务、聚类任务、降维任务、模型选择以及数据的预处理。各模块功能介绍 分类任务分类模型加载模块最近邻算法neighbors.NearestNeighbors支持…

费米悖论的三十种解释

© David B. Mattingly来源:利维坦 文:Ella Alderson译:Rachel校对:Yord原文:/medium.com/predict/30-solutions-to-the-fermi-paradox-aaabfce56280利维坦按:我个人现阶段觉得,与其说接受宇…

无监督学习

目标 利用无标签的数据学习数据的分布或数据与数据之间的关系被称作无监督学习。 有监督学习与无监督学习的最大去区别在于数据是否有标签。 无监督学习最常见的应用场景是聚类和降维。 聚类 聚类,就是根据数据的“相似性”将数据分为多类的过程。相似性评估&am…

重磅!三星宣布3nm成功流片!

来源:世界先进制造技术论坛(AMT)编辑:小艾 6月29日,据外媒最新报道,三星宣布,3nm制程技术已经正式流片! 据悉,三星的3nm制程采用的是GAA架构,性能上完胜台积电的3nm FinFET架构!据报导&#xff…

前端实战:仿写小米官网第一天

前端实战的第一天 小米官网 目前效果: 实现功能: 导航栏,首页切换,无淡入淡出效果的轮播图,搜索功能,产品展示栏下滑 代码(便于记录,将js、css和html糅合在了一起)&…

ubuntuxu双系统安装+git/g++/vim+pytorch+opencv+yolo+sitl相关学习

multirotor The first day ——12.10 1.install vmware-workstation and ubuntu swap sources and 换输入法 2.learn git github关联远程仓库 3.install and use Typora Git codemeaningmkdir test创建目录cd test进入目录git init初始化仓库ls ;ls -ah查看目…

MySQL日志详细说明

这片博文我们会详细说明MySQL本身的日志,不包含重做日志和undo日志(这两个日志是innodb存储引擎的日志)。 MySQL本身的日志有以下几种(MySQL5.7版本): 错误日志慢查询日志通用日志二进制日志错误日志 默认情…

python-DBSCAN密度聚类

1.DBSCAN 算法是一种基于密度的聚类算法: 聚类的时候不需要预先指定簇的个数。最终的簇的个数不定。 2.DBSCAN 算法将数据点分为三类: 核心点:在半径Eps内含有超过MinPts数目的点边界点:在半径Eps内点的数量小于MinPts&#xff…

院士报告 | 李德仁:基于数字孪生的智慧城市(PPT)

来源:转自智慧城市大讲堂,微信编辑:邱峰、罗兵,张钦煜微信审核:张祥、吴斌、数字理政研究院、中通协大数据分会本文为首届川渝住房城乡建设博览会——川渝数智城市BIM/CIM高峰论坛上,中国科学院院士、中国工…

Hanlp的安装和配置

Hanlp简介 HanLP 是由一系列模型与算法组成的 Java 工具包,目标是普及自然语言处理在生产环境中的应用。 HanLP 具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。 HanLP 提供下列功能: 中文分词最短路分词N-最短路分词CRF分词索引分词极…

python-主成分分析-降维-PCA

PCA算法及其应用 主成分分析(PCA) 主城成分分析(PCA):常见的降维方法,用于高维数据集的探索与可视化,还可以用作数据压缩和预处理。 PCA 可以把具有相关性的高维变量合成为线性无关的低维变量,成为主成分&…

5个基本概念,从统计学到机器学习

来源:CSDN作者:George Seif本文讲述了数据分析师应当了解的五个统计基本概念:统计特征、概率分布、降维、过采样/欠采样、贝叶斯统计方法。从高的角度来看,统计学是一种利用数学理论来进行数据分析的技术。象柱状图这种基本的可视…

Ubuntu安装与配置(简要)

学校的实验课任务,一看没有写过Ubuntu的安装,现在顺便上传上来;

python-非负矩阵分解-NMF

非负矩阵分解 非负矩阵分解是矩阵中所有元素均为非负数约束条件下的矩阵分解,其基本思想:给定一个非负矩阵V,NMF能够找到一个非负矩阵W和一个非负矩阵H,使得矩阵W和矩阵H的乘积近似等于矩阵V中的值。 矩阵:被称为基础…

OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

来源:AI科技评论作者:琰琰、青暮比GPT-3更强大!昨日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot,这款工具基于GitHub及其他网站的源代码,可根据上文提示为程序员自动编写下文代码!Git…

Hanlp之理解用户自定义词典(java版本)

首先说明,由于本人水平有限,文章纰漏以及不妥之处还请指出,不胜感激; 理解hanlp中用户自定义词典(java) 什么是hanlp用户自定义字典?为什么要有用户自定义词典? 在Hanlp分词中&…

python-聚类图像分割

K-Means聚类图像分割 图像分割: 利用图像的灰度,颜色,纹理,形状等特征,把图像分成若干个互不重叠的区域,并使这些特征在同一区域内呈现相似性,在不同区域之间存在明显的差异性。然后&#xff0c…

科学家揭秘大脑靠“旋转”区分过去和现在,还给了个AI架构设计新思路 | Nature子刊...

来源:量子位 过去和现在的边界,到底在哪里?人类,又是如何在时间混沌中区分出过往与当下的?注意,这不是一个哲学问题。(手动狗头)而是科学家们的最新研究。两个普林斯顿的神经学家&am…

Hanlp中自定义词典的配置、引用以及问题解决

文章目录如何阅读本文?Hanlp用户自定义词典引用简介操作步骤环境创建编辑词典文件将用户自定义词典路径加入配置文件删除缓存文件如何阅读本文? 首先我们对Hanlp用户词典进行简介,推荐首先阅读链接文章,它是本文的第一来源&#…