18.Python实现Web开发框架【Flask】
引入或下载
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql
# 如果不这样写的话会报一个错误
pymysql.install_as_MySQLdb()
# 创建Flask应用
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:123@127.0.0.1:3306/mysql"#数据库连接(用户名,密码Ip地址,端口号可写可不写,数据库名)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False#防止她报警告
# 连接MYSQL数据库
db = SQLAlchemy(app)
# 创建模型
# 定义库模型
class Persons(db.Model):
__tablename__ = "persons"
# 定义列表
id = db.Column(db.Integer, primary_key=True)#Column 数据类型,主键啥的
name = db.Column(db.String(20))
age = db.Column(db.Integer)
# 创建路由和函数 "GET", "COPY", "POST" 允许的方法
@app.route("/", methods=["GET", "COPY", "POST"])
返回页面
def hello():
return render_template("index.html", name=name, age=age, persons=persons)
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>你好 Flask</h1>
<h3>姓名:{{name}}</h3>
<h3>年龄:{{age}}</h3>
<table border="1">
<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>
模拟数据内型
def hello():
# return "你好啊,未来的我,我希望你以后可以自立自强,不要那么傻"
name = "zs"
age = 22
persons = [
{"id": 1, "name": "zs", "age": 3},
{"id": 2, "name": "ls", "age": 4},
{"id": 3, "name": "ww", "age": 5}
]
# 路径/<参数类型(可省略): 参数>
@app.route("/student/<int:sid>")
def student(sid):
return f"传递过来的参数为:{sid}"
# 运行
if __name__ == '__main__':
# 创建所有模型(表)
db.create_all()
app.run(debug=True)
# debug=True 调试模式 第一次需要运行Test 以后便不需要了
#查询数据库表里面的数据
persons = Persons.query.all()
Test
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql
# 如果不这样写的话会报一个错误
pymysql.install_as_MySQLdb()
# 创建Flask应用
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:123@127.0.0.1:3306/mysql"#数据库连接(用户名,密码Ip地址,端口号可写可不写,数据库名)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False#防止她报警告
# 连接MYSQL数据库
db = SQLAlchemy(app)
# 创建模型
# 定义库模型
class Persons(db.Model):
__tablename__ = "persons"
# 定义列表
id = db.Column(db.Integer, primary_key=True)#Column 数据类型,主键啥的
name = db.Column(db.String(20))
age = db.Column(db.Integer)
# 创建路由和函数 "GET", "COPY", "POST" 允许的方法
@app.route("/", methods=["GET", "COPY", "POST"])
def hello():
# return "你好啊,未来的我,我希望你以后可以自立自强,不要那么傻"
name = "zs"
age = 22
# persons = [
# {"id": 1, "name": "zs", "age": 3},
# {"id": 2, "name": "ls", "age": 4},
# {"id": 3, "name": "ww", "age": 5}
# ]
#查询数据库表里面的数据
persons = Persons.query.all()
return render_template("index.html", name=name, age=age, persons=persons)
# 路径/<参数类型(可省略): 参数>
@app.route("/student/<int:sid>")
def student(sid):
return f"传递过来的参数为:{sid}"
# 运行
if __name__ == '__main__':
# 创建所有模型(表)
db.create_all()
app.run(debug=True)
# debug=True 调试模式 第一次需要运行Test 以后便不需要了
效果展示