• [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程序中使用到的邮箱和数据库的相关问题就解决了。
  • 相关阅读:
    接口调试之Postman 使用方法详解
    用Vue2仿京东省市区三级联动效果
    高德地图JS API获取经纬度,根据经纬度获取城市
    js 格式化数字,格式化金额:
    CSS Media媒体查询使用大全,完整媒体查询总结
    最新手机号正则表达式 java 、javascript版正则表达式验证是否为11位有效手机号码
    JavaScript 实现textarea限制输入字数, 输入框字数实时统计更新,输入框实时字数计算移动端bug解决
    在上线项目中,用Vue写一个星级评价
    new Date()设置日期在IOS的兼容问题
    javascript 省市区三级联动 附: json数据
  • 原文地址:https://www.cnblogs.com/xiaozhaoqi/p/7236227.html
Copyright © 2020-2023  润新知