首先创建一个python项目,就不同的python项目就好了,然后要安装好 Flask pip insatll Flask
入门案例
之间在项目中创建一个py文件写上代码 在 PyCharm 中右键运行就好了
from flask import Flask
# 创建Flask应用
app = Flask(__name__)
# 创建路由和函数 默认只能通过 GET 方式拿到数据
@app.route("/", methods=["GET", "POST"])
def hello():
return "hello world flask"
# @app.route("/students/<sid>")
# 如果不写类型为 int 那么就是啥都可以传,如果写了int那么只能 /students/int类型 否则访问不到
@app.route("/students/<int:sid>")
def students(sid):
return f"您要查询的编号为:{sid}"
if __name__ == '__main__':
# debug 代表修改后不要重启,这是平时开发的时候哦玩的
app.run(debug=True)
执行效果:
Jinja2模板引擎使用
在项目中创建 templates 这个文件夹
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello world</title>
</head>
<body>
<h1>你好:Flask</h1>
<h3>姓名:{{ name }}</h3>
<h3>年龄:{{ age }}</h3>
<table>
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
{% for p in persons %}
<tr>
<td>{{ p.id }}</td>
<td>{{ p.name }}</td>
<td>{{ p.age }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
python代码
使用模板的话 一定要导入 render_template
# 要使用 模板 就一定要导入 render_template
from flask import Flask, render_template
# 创建Flask应用
app = Flask(__name__)
# 创建路由和函数 默认只能通过 GET 方式拿到数据
@app.route("/", methods=["GET", "POST"])
def hello():
# 调整到 模板页面
name = "张三"
age = 188
persons = [
{"id": 1, "name": "张三", "age": 3},
{"id": 2, "name": "李四", "age": 4},
{"id": 3, "name": "王五", "age": 5},
]
return render_template("index.html", name=name, age=age, persons=persons)
if __name__ == '__main__':
# debug 代表修改后不要重启,这是平时开发的时候哦玩的
app.run(debug=True)
Flask 操作数据库
这里要 pip insatll pymysql
和 pip install flask-sqllchemy
,这属于扩展 Flask 这个框架。
python 代码
# 要使用 模板 就一定要导入 render_template
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql
# 将 mymysql 作为 MySQLdb 使用
pymysql.install_as_MySQLdb()
# 创建Flask应用
app = Flask(__name__)
# 连接数据库
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:root@127.0.0.1:3306/my-python"
# 这是设置为 false 提高性能
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 连接MYSQL数据库
db = SQLAlchemy(app)
# 创建模型 (到时候会自动更具这个模板创建表)
class Persons(db.Model):
# 这是对应的表名
__tablename__="persons"
# 第一个参数是 类型 第二个参数是 约束
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
age = db.Column(db.Integer)
# 创建路由和函数 默认只能通过 GET 方式拿到数据
@app.route("/", methods=["GET", "POST"])
def hello():
# 调整到 模板页面
name = "张三"
age = 188
# 查询数据库表中的数据
persons = Persons.query.all()
return render_template("index.html", name=name, age=age, persons=persons)
if __name__ == '__main__':
# 创建所有的模型(表)
db.create_all()
# debug 代表修改后不要重启,这是平时开发的时候哦玩的
app.run(debug=True)
运行后会自动帮我们在数据库中更具 定义的 模型 创建好表 (如果已经创建就不会再重复创建了)
顺便插几条数据测试一下: