日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

flask框架数据库增删改查

發(fā)布時(shí)間:2024/1/23 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flask框架数据库增删改查 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
from flask import Flask import os from flask_sqlalchemy import SQLAlchemy import pymysql app=Flask(__name__)#__name__當(dāng)前文件 BASE_DIR=os.path.abspath(os.path.dirname(__file__))#路徑abspath絕對(duì)路徑abspath;dirname目錄名dirname,dirname #BASE_DIR=當(dāng)前文件的絕對(duì)路徑 #base基礎(chǔ)base;dir目錄dir;base_dir基礎(chǔ)目錄base_dir;base_dir基礎(chǔ)目錄base_dir app.config["SQLALCHEMY_DATABASE_URI"]="mysql+pymysql://root:root@127.0.0.1:3306/student" #app.config['SQLALCHEMY_DATABASE_URI']="sqlite:///"+os.path.join(BASE_DIR,"Demo.sqlite")#demo演示demo;數(shù)據(jù)庫(kù)指向自帶的sqlite數(shù)據(jù)庫(kù) #config配置,布局;config,config配置config#sqlite,django和flask自帶的數(shù)據(jù)庫(kù)sqlite一個(gè)輕量級(jí)的數(shù)據(jù)庫(kù)sqlite #databases數(shù)據(jù)庫(kù)databases;sqlalchemy功能,關(guān)系,外鍵關(guān)聯(lián),中進(jìn)行關(guān)聯(lián)查詢sqlalchemy,sqlalchemy #URI統(tǒng)一資源匹配符;配置數(shù)據(jù)連接的參數(shù)#app.config返回類字典對(duì)象,里面用來(lái)存放當(dāng)前app的配置 app.config["SQLALCHEMY_COMMIT_TEARDOWN"]=True#teardown拆卸,待拆房屋,teardown,teardown #commit把...交托給commit把...交托給commit commit #sqlalchemy commit teardown請(qǐng)求結(jié)束后自動(dòng)提交數(shù)據(jù)庫(kù)修改 app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]=True#track軌道,追蹤track,track,track,track,track; #modifications#修改修飾modifications,modifications; #如果設(shè)置成True(默認(rèn)情況),flask_SQLALchemy 將會(huì)追蹤對(duì)象的修改并且發(fā)送信號(hào) models=SQLAlchemy(app)#關(guān)聯(lián)sqlcchemhy和flask應(yīng)用 session=models.session() class BaseModel(models.Model):#學(xué)員表__abstract__=True#抽象表為True,代表當(dāng)前類為抽象類,不會(huì)被實(shí)例化id=models.Column(models.Integer,primary_key=True,autoincrement=True)def save(self):session.add(self)session.commit()def delete_obj(self):#魔術(shù)方法session.delete(self)session.commit() class Students(BaseModel):#學(xué)員表__tablename="students"name=models.Column(models.String(32))age=models.Column(models.Integer)gender=models.Column(models.Integer)#0,男;1女;2其他 class Course(BaseModel):#課程表__tablename = "course"label = models.Column(models.String(32))description=models.Column(models.Text)#雙向映射# teachers=models.relationship(# 'course',#映射類的名稱#雙向映射# backref='teachers'#映射到教師表# ) class Stu_Cou(BaseModel):#課程表__tablename = "stu_cou"course_id = models.Column(models.Integer, models.ForeignKey("course.id"))student_id = models.Column(models.Integer, models.ForeignKey("students.id")) class Grade(BaseModel):#成績(jī)表,課程、學(xué)員關(guān)聯(lián)此表__tablename = "grade"id = models.Column(models.Integer, primary_key=True, autoincrement=True)grade=models.Column(models.Float)course_id=models.Column(models.Integer,models.ForeignKey("course.id"))student_id = models.Column(models.Integer, models.ForeignKey("students.id")) class Attendance(BaseModel):#考勤表 關(guān)聯(lián)學(xué)員__tablename = "attendance"id = models.Column(models.Integer, primary_key=True, autoincrement=True)student_id = models.Column(models.Integer, models.ForeignKey("students.id"))att_time=models.Column(models.Date)status = models.Column(models.Integer,default=1)#0遲到;1正常出勤;2早退;3請(qǐng)假;4曠課 class Teachers(BaseModel):#教師表__tablename = "teachers"id = models.Column(models.Integer, primary_key=True, autoincrement=True)name = models.Column(models.String(32))age = models.Column(models.Integer)gender = models.Column(models.Integer) # 0,男;1女;2其他course_id = models.Column(models.Integer, models.ForeignKey("course.id")) # session=models.session()#創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)修改實(shí)例,增刪改 # course=Course(label="python",description="python是世界上最好的語(yǔ)言") # session.add(course) # session.commit()#提交保存 #添加數(shù)據(jù) # t=Teachers(name="老邊",age=24,gender=0,course_id=1) # t.save() # t1=Teachers() # t1.name="老王" # t1.gender=0 # t1.age=30 # t1.save() # t=Teachers(name="laoli",age=36,gender=1,course_id=1) # t.save() # t1=Teachers() # t1.name="老王" # t1.gender=1 # t1.age=45 # t1.save()#修改數(shù)據(jù) # t=Teachers.query.get(1) # t.name="松哥帥" # t.gender=0 # t.age=18 # t.save() t=Teachers.query.get(7) t.name="松哥帥" t.gender=0 t.age=18 # #刪除數(shù)據(jù) # t=Teachers.query.get(1) # t.delete_obj() # Teachers.query.get(2).delete_obj() # t=Teachers.query.get(3) # t.delete_obj() # Teachers.query.get(4).delete_obj() # t=Teachers.query.get(5) # t.delete_obj() # Teachers.query.get(6).delete_obj() # #查詢數(shù)據(jù) # print(Teachers.query.all()) # print(Teachers.query.first()) # print(Teachers.query.filter_by(age=18).all()) # print(Teachers.query.all()) # print(Teachers.query.first()) # print(Teachers.query.filter_by(age=18).all()) # print(Teachers.query.order_by("age").all())#升序 # print(Teachers.query.order_by(models.desc("age")).all())#降序 # print(Teachers.query.get(3))#只能以主鍵查詢 # print(Teachers.query.offset(1).limit(2).all()) print(Teachers.query.offset(1).limit(2).all()) print(Teachers.query.get(3))#只能以主鍵查詢 print(Teachers.query.order_by(models.desc("age")).all())#降序 print(Teachers.query.order_by("age").all())#升序 # #offset偏移量,就是從哪里開始;limit限制條數(shù),就是單次返回條數(shù) # page=2 # page_size=4 # start=(page-1)*page_size # teachers=Teachers.query.offset(start).limit(page_size).all() # print(teachers)#模擬分頁(yè)顯示 page=2 page_size=4 start=(page-1)*page_size teachers=Teachers.query.offset(start).limit(page_size).all()# models.drop_all() # models.create_all() # course=Course(label="python",description="世界上最好的語(yǔ)言") # course.save() # course=Course(label="php",description="世界上將out的語(yǔ)言") # course.save() # course=Course(label="java",description="世界上快out的語(yǔ)言") # course.save()

總結(jié)

以上是生活随笔為你收集整理的flask框架数据库增删改查的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。