from flask import Flask,render_template
#导入第三方链接库sql点金术
from flask_sqlalchemy import SQLAlchemy
#建立对象
app = Flask(__name__)
#载入配置文件
app.config.from_pyfile("config.ini")

#指定数据库连接还有库名
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:mysql@127.0.0.1:3306/myflask?charset=utf8'

#指定配置,用来省略提交操作
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

#建立数据库对象
db = SQLAlchemy(app)
#建立数据库类,来映射数据库表,将数据库的模型作为参数传入
class User(db.Model):
#声明表名
__tablename__ = 'user'
#建立字段函数
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(200))
password = db.Column(db.String(200))
#数据库的查询操作(查)
@app.route('/select')
def select_user():
#简单的全量查询
#翻译为select * from user
ulist = User.query.all()
print(ulist)
for item in ulist:
print(item.name)

#只取一条
#翻译为 select * from user limit 1
ulist = User.query.first()
print(ulist)

#使用原生的sql语句
#翻译为 select * from user order by id desc limit 1,2
items = db.session.execute('select * from user order by id desc limit 1,2')
#将结果集强转为list
items = list(items)
#使用原生语句进行修改操作
# db.session.execute("update user set password = '12355554' where id=6 ")
# return "这里是查询页面"

#将动态数据传递给模板
return render_template('day5.html',items=items)
#数据库的修改操作(改)
@app.route('/edit')
def edit_user():
#根据某个字段做修改操作
#翻译为 update user set name = "张三" where id = 6
User.query.filter_by(id=6).update({'name':'张三'})
return "这里是修改操作"
#数据库的删除操作(删)
@app.route("/del")
def del_user():
#根据某字段做删除,filter_by可以理解为where条件限定
#翻译为 delete from user where id=1
User.query.filter_by(id=1).delete()
return "这里是删除操作"

#数据库入库操作(增)
@app.route("/")
def index():
#增,入库逻辑
#声明对象
user = User(name='root',password='123456')
#调用添加方法
db.session.add(user)
#提交入库
db.session.commit()
return "这是一个首页"

if __name__ == "__main__":
app.run()