flask web开发环境搭建(Mac

2020-01-02 17:43:12 浏览数 (1)

写在最前面

11月末和这个12月都在折腾flask,想的是能够用web框架去从后端写一个网站出来,当中学习积累的时间有点多,我又不怎么喜欢学到哪儿写到哪儿,所以就慢慢写好了。应该会分成几个系列写。

这篇主要讲的是flask 开发环境的搭建,算是我这一路上遇到的问题什么的。涉及了:

  • Python 3 环境的搭建
  • virtualenv配置
  • mysql 命令行和配置
  • 完全卸载homebrew 和 下载 homebrew的命令行

Python3 环境的搭建

因为想的是寒假能写一个生产级别的flask应用,所以这次的开发部署的是Python 3的开发环境。

先是确保你已经下了Python3,没有的可以使用 brew install Python3

可能出现的情况是,你的brew会很长时间的卡在 brew update这边,你翻个墙再搞就好了。

这时候你在terminal键入Python,会出现Python 2.7的环境。键入Python3,会出现Python 3.5的环境。

我有想过说把我的Mac全局Python环境改成Python3的,但我stackoverflow的结果是,那样会让我系统本身一些基于Python 2.7的应用不好,可以的解决方法是输入alias Python=Python3。这样的话,你再输入Python,当前情况下的Python环境就改成Python3了。

虚拟环境的搭建

命令行cd你的项目文件夹,使用pip install virtualenv。 键入virtualenv -p Python3 envname,这时候你的虚拟环境就调到Python3的环境下了。

命令行键入source envname/bin/activate。这时候你就会发现你进入了你的虚拟环境了。

MySQL的搭建

那本<flask web开发>书上用的数据库是sqlite,我想实际应用中的开发应该还是MySQL之类的。所以这边介绍的是MySQL。

brew install MySQL,当然也可以去官网下载。 官网下载的那个,在系统便好那边会有个开关,开启和关闭MySQL服务,用brew下载的话,可以用命令行brew services start mysql打开服务,用brew services stop mysql关闭MySQL服务。我查了一下,开着也不会耗太多内存,所以开不开随便了。

启动服务以后,terminal里输入mysql -u root -p,发现报错。看报错信息显示的是,mysql现在还在tmp中,没有加入环境变量。依次执行unset TMPDIR,`bash mysql_install_db --verbose --user=root --basedir="$(brew --prefix mysql)"--datadir=/usr/local/var/mysql --tmpdir=/tmp。当更改到环境变量后,mysql -u root -p` 会发现就可以了。

设置密码的命令行是SET PASSWORD FOR 'yourname'@'localhost' = 'auth_string'

再提一下当你忘记MySQL密码时的操作,因为我这样的老是忘记密码。ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'

MySQL的常用命令行有两个觉得可以提一下,一个是flush privileges; 刷新,另一个是杀进程,先show processlist,再kill pid

目前我觉得值得记的就是这些了。其他的还是看文档去学习了。

brew的下载和完全删除命令行

这个是我发现我把我brew搞得乱七八糟时的想重新下载时找的一些能work的命令行,值得记录一下。 下载 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后把brew移动到环境变量。echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

删除操作花了我点时间翻github issue找到的一个彻底的。ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”

最后的话

大概就是这些了,是我最近想要记下来的一些命令行什么的,下次再配置自己也找得到。操作系统时OS X,嗯,下一篇应该是一篇关于flask login 模块的东西。

0 人点赞