星云小窝项目-项目启动二
星云 2024/3/22 flask
上一篇博客大致介绍了星云小窝这个网站,这篇博客将介绍一下如何启动它。
# 前言
上一篇博客大致介绍了星云小窝这个网站,这篇博客将介绍一下如何启动它。
# 1. 从Github从下载它
我已经把源码发布在github上,有需要可自取:
xingyun-dev/xingyun-xiaowo (opens new window)
可以选择直接下载压缩包或用git拉取
# 2. 使用编辑器打开(以pycharm为例)
(我的python版本是python3.11)
# 2.1. 下载所需要的模块
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
1
# 2.2. 配置mysql数据库
补充,如何备份mysql数据库 (同时其sql文件我也放置于github上了)
参考文章 https://zhuanlan.zhihu.com/p/269983875 (opens new window)
# 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
# 导出school数据库中指定表的数据和结构
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文件中是否有建库语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
有点问题,我发现导出的中文数据有些乱码;
所以我直接用MySQL Workbench导出 点击Sever 中的 “Data Export"
打开文件后,发现是正确编码的
之后就是新建一个数据库,将这个建表语句文件导入,创建表格
# 2.3. 配置QQ邮箱发送验证码
这里就不细讲了,网上也有许多教程。 参考: https://zhuanlan.zhihu.com/p/664771819 (opens new window)
# 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'
1
2
3
4
2
3
4
连接邮箱
# 发送邮件验证码
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 3. 启动
打开终端
python .\wsgi.py
1
然后就能在本地打开指定端口号的网站了
# 总结
ok.至此项目就正常启动了,你也可以在此基础上再度创作,同时欢迎提出修改意见。
天远楼台横北固,夜深灯火见扬州。
--2024-3-22