- 环境变量导入的优化方法
使用环境变量导入邮箱的用户名和密码,显然从理论上讲是非常安全的,但是在我们的编码过程中,每次测试都要重复导入,因为终端一旦关闭,那么导入的环境变量就会失效,对于我们来说是十分不方便的,所以小编根据自己的经验,给大家提供一种较为方便的方法。
在hello1.py的同级目录下,新建一个py文件,命名为info.py:
在info.py中写入自己的邮箱用户名和密码:
USERNAME = 'xxxxxxxx@qq.com'
PASSWORD = 'yyyyyy'
在hello1.py中的代码如何:
import os
# ...
from info import USERNAME, PASSWORD #从info.py中导入邮箱账户和密码
app.config['MAIL_SERVER'] = 'smtp.qq.com'
app.config['MAIL_PORT'] = 25
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = USERNAME #将邮箱账户赋值
app.config['MAIL_PASSWORD'] = PASSWORD #将邮箱密码进行赋值
app.config['FLASKY_MAIL_SUBJECT_PREFIX'] = '[Flasky]'
app.config['FLASKY_MAIL_SENDER'] = 'Flasky Admin <xxxxxxx@qq.com>'
app.config['FLASKY_ADMIN'] = USERNAME
由此就不用每次在终端里进行环境变量的导入了,但是很多朋友可能会想,我的代码是推送到线上的,那我push的时候不就直接推送到github上了,别人不就可以看见我的邮箱和密码了吗(确实有这个问题,小编的邮箱原来就差点泄露过),对于使用github的小伙伴来说,可以设置,对 Git的隐藏文件 .gitignore进行编辑:
(venv) $ vim .gitignore
进入.gitignore文件:
# Rope project settings
.ropeproject
Status API Training Shop Blog About
secret.py # 将你不想git追踪的文件添加到里面
info.py
有关详细的git忽略特殊文件的做法,请移步廖雪峰的git教程(忽略特殊文件),关于有朋友使用pycharm集成IDE的,自己查阅相关文档进行设置,在这里不一一赘述了。
- 数据库
在11章以后,由于添加文章和用户。如果直接生成模拟文章和用户名后,会产生一个问题,Role表中是空的,所以用户的角色数据会是空的,这样,会产生一个错误,外键关联失败,由于是外键,不能利用SqlLiteStudio手动数据修改数据。
这样的话,程序页面中没有管理员功能键的显示。
可以删除数据库,利用命令,
(venv)$python manage.py db upgrade
生成空的数据库,利用命令,
(venv)$Role.insert_roles()
然后再生成虚拟文章和用户数据。
注意,管理员只能自己手动添加数据。