Youtube: Web Development with Python Tutorial – Flask & Dynamic Database-Driven Web Apps
下载安装Flask
- 创建环境
> mkdir myproject > cd myproject > py -3 -m venv venv
- 激活环境
> venv\Scripts\activate
- 安装Flask
$ pip install Flask
- 运行:
python app.py
- app.py格式
app = Flask(__name__) @app.route("/...") # 路径 url(网站名/...) def hello(): # 名称 函数名 return render_template("home.html") # 页面展示 选择展示哪个html文件
- 制作简单的前端页面。
- 遇到问题:按照教程代码,无法把Apply的button放到最右边,查看官方文档后找到解决办法
<div class="row"> <!-- 左边 --> <div class="col-auto me-auto">.col-auto .me-auto</div> <!-- 右边 --> <div class="col-auto">.col-auto</div> </div>
- Flask框架下,在前端页面中使用代码
{{% 代码 %}} # Example # for 语句 {% for job in jobs %} {% include 'jobitem.html' %} {% endfor %}
- 使用 Render 将网站部署到云端
- 购买一个域名,把部署在云端的网站和域名关联起来
- 看懂了,但没钱,没做这一步
实现功能:将职位信息(职位名称、工作地点等)存储在数据库中,能够从数据库中读取数据,动态地展示在前端页面上
在线数据库网站:https://planetscale.com/
下载MySQL Workbench:https://dev.mysql.com/downloads/workbench/
- 通过在线数据库中新建数据库,再将MySQL Workbench与在线数据库建立连接
- MySQL Workbench中,可以通过SQL语句进行数据插入等操作,也可以直接向表中输入数据
- 新建文件database.py
- 安装 sqlalchemy
pip install sqlalchemy #建议使用清华源镜像 pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple
- py文件连接数据库
from sqlalchemy import create_engine engine = create_engine("mysql+pymysql://username:password@host/database?charset=utf8mb4")
- 安装 sqlalchemy
- 遇到问题:把sqlalchemy row变成python中的字典形式
看着教程直接用的dict()
,自己运行时却不断报错,经google搜索,在stackoverflow上看到了如下回答:原来是不同版本的SQLAlchemy对应的方法不一样,于是采用for row in resultproxy: row_as_dict = row._mapping # SQLAlchemy 1.4 and greater # row_as_dict = dict(row) # SQLAlchemy 1.3 and earlier
row._mapping
,成功运行! - 遇到问题:隐私安全保护
由于教程是在在线IDE编写代码的,所以可以直接创建一个系统环境变量(system environment variables)里的 secrets ,用于保护连接数据库时的账号密码。 我直接用的pycharm,这一步暂时不知道怎么做,所以跳过了这一步。
- 美化申请表页面
- 待续...