星云小窝项目-项目启动二

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

在这里插入图片描述

有点问题,我发现导出的中文数据有些乱码;

所以我直接用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

在这里插入图片描述

连接邮箱


# 发送邮件验证码
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

在这里插入图片描述

# 3. 启动

打开终端

python .\wsgi.py
1

在这里插入图片描述

然后就能在本地打开指定端口号的网站了

在这里插入图片描述


# 总结

ok.至此项目就正常启动了,你也可以在此基础上再度创作,同时欢迎提出修改意见。

天远楼台横北固,夜深灯火见扬州。

--2024-3-22

评 论:

冬眠
司南