[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 ...
随机推荐
- [Python] Codecombat 攻略 Sarven 沙漠 (1-43关)截止至30关
首页:https://cn.codecombat.com/play语言:Python 第二界面:Sarven沙漠(43关)时间:4-11小时内容:算术运算,计数器,while循环,break(跳出循环 ...
- 【Java学习笔记之三十四】超详解Java多线程基础
前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...
- 【20171026早】alert(1) to win - 第六、七、八题
早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看.点击这里 忙完后,继续练习,刚开始发现自己答题的速度有些慢,可能是因为对于html,javascript知识不是很精通,但是话又说回来,谁 ...
- 爱上朴实的CSS细节
英文原文:Learning to Love the Boring Bits of CSS 未来的CSS太让人兴奋了:一方面,是全新的页面布局方式:另一方面,是酷炫的滤镜.颜色等视觉效果.这些CSS, ...
- 扩展 lua require 的行为
扩展 lua require 的行为 来源 https://blog.codingnow.com/2015/10/lua_require_env.html 今天同事提了个需求,他希望可以给部分 lua ...
- (2017浙江省赛E)Seven Segment Display
Seven Segment Display Time Limit: 2 Seconds Memory Limit: 65536 KB A seven segment display, or ...
- ASP.NET Core的身份认证框架IdentityServer4(6)- 开始
安装和概述 启动一个新的IdentityServer项目有两种基本方法: 从头开始 从Visual Studio中的ASP.NET身份模板开始 如果从头开始,我们提供了一些文档.项目帮助和内存存储支持 ...
- arguments对象
改变函数arguments也会改变对应的参数,arguments会自动映射到对应的参数上 但是改变参数并不会同步改变arguments 它们并不公用内存 在strict模式,不能对arguments付 ...
- [MYSQL] 记一次MySQL性能调优
最近在做数据迁移工作,已有一堆数据文件,要把这些数据文件写到MySQL 数据库里面去. MySQL数据库上架了一层服务接口,可以直接调用.博主写了一个迁移程序,放在服务器A上. *********** ...
- 使用NPOI导出导入导出Excel
Excel2003 #region Excel2003 /// <summary> /// 将Excel文件中的数据读出到DataTable中(xls) /// </summary& ...