[flask实践] 解决qq邮箱/mysql的相关配置问题
笔者经过flask web(Miguel著,封面是一条狗)一书的学习,打算实现一个旅游类网站,在此过程中发现,相对于书中的flasky博客程序,需要作出一些改变:
1. 注册邮箱:国内要使用126,qq等邮箱。默认读者了解过flasky邮件的实现方式,而使用126、qq邮箱的不同之处有:
第一,邮箱端口 ['MAIL_PORT'] = 465 不同于gmail的587端口
第二,使用协议 ['MAIL_USE_SSL'] = True 不同于gmail的TLS协议
         第三,用户名   ['MAIL_USERNAME'] = '2327****81'  只需提供用户名,不需要后缀名(@qq.com)
    第四,密码    ['MAIL_PASSWORD'] = 'apnrtcqkuq****ce'  到邮箱运营商开启stmp服务,并获取授权码(并非邮箱的登录密码)
其他配置与flasky环境类似,可以使用单独的config文件存储这些关乎安全的信息。
2. 更换数据库:书中使用的sqlite是一种轻型的本地数据库,目的在于简单易学,但想在互联网上部署一个可供人们访问的web程序,需要使用那些高并发、支持远程服务的中型数据库,例如MySQL,在新浪云上部署web程序最好使用MySQL,因为在计算量不高的情况下,是免费的。 (更新:笔者研究了三个星期如何在新浪云web服务器上使用flask-sqlalchemy提供的方法连接mysql,还是以失败告终。最后选择了阿里云,尽管搭建uwsgi+nginx需要一点时间)书中作者也推荐了一个免费部署平台Heroku,但遗憾的是对国内不太友好。
Flask框架使用mysql和sqlite类似,我使用的是Ubuntu下的Pycharm开发环境,建立flask工程。Pycharm附带了数据库可视化插件,无需使用navicat这些工具。
安装MySQL :
  sudo apt-get install mysql-server
  sudo apt-get install mysql-client 
  sudo apt-get install libmysqlclient-dev 
安装完毕就启用了mysql服务,这个时候无论从终端登录mysql的root账户还是Pycharm访问数据库都会报1045错误,原因在于没有给root用户设置密码,解决方法和相关的指令不再赘述,参考:http://blog.csdn.net/wwwdc1012/article/details/51745906
能够以root新密码登录mysql后,根据程序的需要创建用户和数据库。常用的MySQL指令参考:http://www.cnblogs.com/penciler/p/4813157.html
需要注意的是,我们只需要创建数据库以及访问该数据库的用户名、密码,并不需要创建该数据库内的表,表应该在web服务启动时创建(参考书中的models类)。
在flask工程安装并引入Flask-MySQL、Flask-MySQLdb、Flask_SQLalchemy包,安装完毕后在程序中填写数据库URI:
['SQLALCHEMY_DATABASE_URI'] = 'mysql://用户名:密码@localhost:3306/数据库名'
打开Pycharm的Database插件-->DataSourse-->MySQL,输入刚才在机器中创建好的mysql用户名、密码、数据库名,点击Test Connection,显示成功,你的可视化数据库已经配置完毕,flask程序可以在数据库中读写数据,在Database插件可以直观的看到有哪些表、主键、外键、具体的数据。
但不知是否和Pycharm的版本有关,我的Test Connection按钮是灰色的,显示缺少驱动文件MySQL Connector/J ver5.1.40,旁边提供了Download链接但是点下去毫无反应。在MySQL官网下载这个驱动文件,并在这个窗口Additional添加此驱动,重启Pycharm,Test Connection按钮可以正常工作。 至此,实际flask web程序中使用到的邮箱和数据库的相关问题就解决了。
[flask实践] 解决qq邮箱/mysql的相关配置问题的更多相关文章
- [flask实践] 解决mysql数据库不支持中文的问题
		
接上一篇文章,在解决了mysql+flask环境配置问题之后,往数据库存中文字符串会报1366错误,提示不正确的字符.继而发现默认的mysql采用了Latin1字符集,这种编码是不支持中文的. 如果想 ...
 - flask入门与发送邮件与QQ邮箱
		
前言: 快两个月没写博客了, 原因是懒了, 没有最初写博客那种看到阅读量上涨, 别人给自己文章点赞后的开心. 心态也发生了不少变化. 有机会再来写写. 前两个月我去厦门某公司实习, 本着去厦门玩一玩还 ...
 - wordpress | WP Mail SMTP使用QQ邮箱发布失败的解决办法
		
在使用contact form 7插件时遇到邮件发送失败的问题,经过检查发现是因为服务器不支持mail()函数,判断是否支持mail()函数可以参考http://www.diyzhan.com/201 ...
 - 【微信】QQ邮箱助手不提醒解决
		
1.问题及原因: 微信上的QQ邮箱提醒功能失效了,收到信后不提醒.忘了是使用了TIM,还是使用了QQ邮箱之后才出现的. 不过原因是:QQ邮箱提醒被设置为仅在QQ邮箱客户端提醒 2.解决: 重新安装QQ ...
 - flask 发送QQ邮箱
		
from flask import Flask from flask_script import Manager, Shell from flask_mail import Mail, Message ...
 - jeakins配置邮件通知,附带解决535报错:authentication failed,如果发现测试邮件可以发出,项目构成无法发出邮件,请开启SSL认证,端口号改为(465),qq邮箱、163邮箱通用
		
535报错解决方案:调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授权码替代上面代码部分的passwd即可成功发送邮件 如果设置的邮箱 ...
 - 关于企业邮箱无法提醒解决办法(未安装邮件客户端可添加至网易邮箱大师/qq邮箱等)
		
关于企业邮箱无法提醒解决办法: 一.使用现有的邮箱客户端,以下以网易的邮箱大师为例mail.exe 点击客户端左边的添加邮箱账号,在出现的对话框中输入账号和密码后,点击登陆按钮后,等待添加完成即可,邮 ...
 - 一文解决MySQL时区相关问题
		
前言: 在使用MySQL的过程中,你可能会遇到时区相关问题,比如说时间显示错误.时区不是东八区.程序取得的时间和数据库存储的时间不一致等等问题.其实,这些问题都与数据库时区设置有关,本篇文章将从数据库 ...
 - flask配置qq邮箱发送邮件
		
1.第三方登录qq邮箱不是使用邮箱密码,而是使用独立的授权码: 2.开始在python程序中使用os.environ.get()一直无法获取到环境变量,即使是用source命令重新加载配置文件后使用e ...
 
随机推荐
- LINUX 笔记-wc命令
			
命令参数: -c 统计字节数. -l 统计行数. -m 统计字符数.这个标志不能与 -c 标志一起使用. -w 统计字数.一个字被定义为由空白.跳格或换行字符分隔的字符串.
 - JSP前后台数据交互
			
1.一般方法:在页面加载时载入数据 首先,新建一个包,在包内创建一个类,类实现接口Servlet-javax.servlet 然后,在web.xml文件里配置如下 <?xml version=& ...
 - JMeter性能测试,完整入门篇
			
1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,也越来越流行成为了主流的性能测试工具 ...
 - 一个简单的makefile文件编写
			
下午闲来无聊,就打开很久没动过的linux系统想熟悉熟悉在linux上面编译代码,结果一个makefile文件搞到晚上才搞定,哈哈! 先把代码简单贴上来,就写了一个冒泡排序: sort.h: #ifn ...
 - Vue源码后记-钩子函数
			
vue源码的马拉松跑完了,可以放松一下写点小东西,其实源码讲20节都讲不完,跳了好多地方. 本人技术有限,无法跟大神一样,模拟vue手把手搭建一个MVVM框架,然后再分析原理,只能以门外汉的姿态简单过 ...
 - 深度学习系列 Part (2)
			
1. 神经网络原理 神经网络模型,是上一章节提到的典型的监督学习问题,即我们有一组输入以及对应的目标输出,求最优模型.通过最优模型,当我们有新的输入时,可以得到一个近似真实的预测输出. 我们先看一下如 ...
 - Redhat Linux 自动修改密码
			
bash下使用echo+passwd命令修改密码的方法.方法一:echo "Password" |passwd username --stdin方法二:(echo "Pa ...
 - PAT-甲级-1003
			
一.看题,https://www.patest.cn/contests/pat-a-practise/1007 其实,也是一顿暴力,但是最后一个测试点会运行超时,最开始,计算一段区间的值的总和的时候, ...
 - Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException):
			
用windows连接hadoop集群执行mapreduce任务的时候出现以下错误: org.apache.hadoop.security.AccessControlException:Permissi ...
 - 五种js判断是否为整数(转)
			
五种js判断是否为整数类型方式 作者:snandy 这篇文章主要介绍了五种JavaScript判断是否为整数类型方式,需要的朋友可以参考下 这篇看看如何判断为整数类型(Integer),JavaS ...