星云小窝项目1.0——项目启动(二)
文章目录
- 前言
- 1. 从Github从下载它
- 2. 使用编辑器打开(以pycharm为例)
- 2.1. 下载所需要的模块
- 2.2. 配置mysql数据库
- 2.3. 配置QQ邮箱发送验证码
- 2.4. 修改代码
- 3. 启动
- 总结
前言
上一篇博客大致介绍了星云小窝这个网站,这篇博客将介绍一下如何启动它。
1. 从Github从下载它
我已经把源码发布在github上,有需要可自取:
xingyun-dev/xingyun-xiaowo
可以选择直接下载压缩包或用git拉取
2. 使用编辑器打开(以pycharm为例)
(我的python版本是python3.11)
2.1. 下载所需要的模块
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
2.2. 配置mysql数据库
补充,如何备份mysql数据库 (同时其sql文件我也放置于github上了)
参考文章 https://zhuanlan.zhihu.com/p/269983875
# flaskvue 是数据库名
# 导出所有数据库
mysqldump -uroot -p --host=127.0.0.1 --port=3306 --all-databases >/tmp/full.sql
# 完整导出指定的数据库. 包括建库语句、表结构、数据
mysqldump -uroot -p --host=127.0.0.1 --port=3306 --databases flaskvue > /tmp/flaskvue.sql
# 只导出数据库表结构,不包含数据
mysqldump -uroot -p --no-data --databases flaskvue > /tmp/flaskvue.sql
# 只导出数据,而不添加CREATE TABLE语句
mysqldump -uroot -p --no-create-info --databases flaskvue > /tmp/flaskvue.sql
# 导出数据库中指定表的数据和结构
mysqldump -uroot -p flaskvue --tables sc_admin users > /tmp/flaskvue.sql
mysqldump -uroot -p flaskvue sc_admin users > /tmp/flaskvue.sql
# 恢复导出数据
mysql -u username -p flaskvue < /tmp/flaskvue.sql # 注意,数据库必须已经存在
mysql> source /tmp/maotiweb.sql # 确认sql文件中是否有建库语句
有点问题,我发现导出的中文数据有些乱码;
所以我直接用MySQL Workbench导出
点击Sever 中的 “Data Export"
打开文件后,发现是正确编码的
之后就是新建一个数据库,将这个建表语句文件导入,创建表格
2.3. 配置QQ邮箱发送验证码
这里就不细讲了,网上也有许多教程。
参考:
https://zhuanlan.zhihu.com/p/664771819
2.4. 修改代码
连接数据库
app = Flask(__name__, static_url_path="/", static_folder="resource", template_folder="template")
app.config['SECRET_KEY'] = '3jhbhjkhkhj60gjgjhg3hjkkh13kj200501061538ghfhgkjg'
# app.config['SECRET_KEY'] = os.urandom(24)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://数据库的账号:密码@localhost:3306/数据库名?charset=utf8mb4'
连接邮箱
# 发送邮件验证码
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header
# 发送QQ邮箱验证码,参数为收件箱地址和随机生成的验证码
def send_email(receiver, ecode):
# 邮箱账号和发件者签名
sender = 'xxx <你的邮箱账号>'
# 定义发送邮件的内容,支持HTML标签和CSS样式
content = f"<br/>欢迎来到星云小窝,您的邮箱验证码为:<span style='color:red;font-size:20px;'>{ecode}</span>,请在4分钟内填写完成注册,如非本人操作,请忽略此邮件。"
# 实例化邮件对象,并指定邮件的关键信息。
message = MIMEText(content, 'html', 'utf-8')
# 指定邮件的标题,同样使用utf-8编码
message['Subject'] = Header('星云小窝注册验证码', 'utf-8')
message['From'] = sender # 指定发件人信息
message['To'] = receiver # 指定收件人邮箱地址
smtpObj = SMTP_SSL('smtp.qq.com') # 建立与QQ邮箱服务器的SSL连接
# 通过邮箱账号和获取到的授权码登录邮箱服务器
smtpObj.login('你的邮箱账号', '你的授权码')
# 指定发件人、收件人和邮件内容
smtpObj.sendmail(sender, receiver, str(message))
smtpObj.quit()
# 生成6位随机字符串作为邮箱验证码
def gen_email_code():
str = random.sample(string.ascii_letters + string.digits, 6)
return ''.join(str)
3. 启动
打开终端
python .\wsgi.py
然后就能在本地打开指定端口号的网站了
总结
ok.至此项目就正常启动了,你也可以在此基础上再度创作,同时欢迎提出修改意见。
天远楼台横北固,夜深灯火见扬州。
–2024-3-22