当前位置: 首页 > news >正文

淮上网站建设最近新闻热点事件

淮上网站建设,最近新闻热点事件,关于asp_sql网站开发的书籍,永川做网站1_ORM概述[理解] 解释: 对象关系映射模型特点: 1.将类名,属性, 映射成数据库的表名和字段2.类的对象,会映射成为数据库表中的一行一行的数据 优缺点: 优点: 1.不再需要编写sql语句2.不再关心使用的是什么数据库了 缺点: 1.由于不是直接通过sql操作数据库,所以有性能损失 2_…

1_ORM概述[理解]

  • 解释: 对象关系映射模型
  • 特点:
    • 1.将类名,属性, 映射成数据库的表名和字段
    • 2.类的对象,会映射成为数据库表中的一行一行的数据
  • 优缺点:
    • 优点:
      • 1.不再需要编写sql语句
      • 2.不再关心使用的是什么数据库了
    • 缺点:
      • 1.由于不是直接通过sql操作数据库,所以有性能损失

2_ORM操作流程[掌握]

  • 操作流程:
    • 1.安装扩展
      • pip install flask_sqlalchemy
      • pip install flask_mysqldb / pymysql
    • 2.设置数据库的配置信息
    • 3.创建sqlalchemy对象db,关联app
    • 4.编写模型类,继承自db.Model,编写字段
    • 5.操作数据库
      • 增删改
      • 查询

3_ORM操作注意[理解]

  • 注意点:

    • 1.因为SQLALChemy去app身上读取了配置信息,所以需要设置到app.config身上

    • 2.数据库的链接信息

      • 如果安装的是flask_mysqldb, 那么链接信息: mysql://<用户名>:<密码>@<ip地址>:<端口号>/<数据库名字>
      • 如果安装的是pymysql, 那么链接信息: mysql+pymysql://<用户名>:<密码>@<ip地址>:<端口号>/<数据库名字>
    • 3.编写的模型类必须继承自db.Model才能被映射

    • 4.如果不指定表名称,默认生成的就是模型类的小写,如果需要自己指定表名使用_tablename_=‘表名’

    • 5.ORM在进行映射的时候不能生成数据库的

4_数据库增删改[掌握]

  • 增删改
    • 全部都是使用db.session操作
    • 常见方法:
      • db.session.add(obj) 添加单个对象
      • db.session.add_all([obj1,obj2]) 添加多个对象
      • db.session.delete(obj) 删除单个对象
      • db.session.commit() 提交会话
      • db.drop_all() 删除继承自db.Model所有表
      • db.create_all() :创建继承自db.Model的所有表
      • 其他:
        • db.session.rollback() 回滚
        • db.session.remove() 移除会话
      • 案例: 编写两个模型类, 一个角色模型类, 还有一个用户模型类
        • 关系: 一对多
      • 注意点:
        • 如果想要打印一个对象的时候看到指定的信息, 那么重写__repr__方法

5_数据库基本查询[掌握]

  • 全部都是通过, 模型类.query来进行的
    • 使用常见的12条语句

6_数据库关系查询relationship[掌握]

  • 解释: 为了方便数据库的关联查询

  • 特点:

    • 1.不会在数据库产生实体字段
    • 2.关系属性,需要在一方添加
    • 3.外键是添加在一方的, 并且关系属性的使用,需要依赖于外键
  • 需求:

    • 1.如果知道了角色的情况下,能否快速查询出,哪些用户扮演了该角色

      • 原始查询方法:
        • role = Role.query.get(1)
        • users = User.query.filter(User.role_id == role.id).all()
      • 快速查询:
        • 使用relationship添加关系属性,就可以快速查询了.
        • 格式:
          • users = db.relationship(“多方的模型类”)
        • 使用格式:
          • role = Role.query.get(1)
          • users = role.users

7_数据库反向查询backref[掌握]

  • 解释:如果知道了用户的情况下,能否快速查询出,哪些该用户扮演了哪个角色
  • 原始查询方法:
    • user = User.query.get(1)
    • role = Role.querye.filter(Role.id == user.role_id).first()
  • 快速查询:
    • 使用backref添加反向属性,就可以快速查询了
    • 格式:
      • users = db.relationship(“多方的模型类”,backref=“role”)
    • 快速查询:
      • user = User.query.get(1)
      • role = user.role

8_数据库懒查询lazy[了解]

  • 解释: 一旦使用了relationship,backref,那么系统会自动做子查询
    • 子查询(subquery): 查询出了一方, 就会自动的讲关联的一方查询出来
    • 动态查询(dynamic): 只有用到了才去查询
  • lazy使用
    • db.relationship(“多方的模型类”,backref=“role”,lazy=“dynamic”)

9_图书馆数据库搭建[掌握]

  • 分析图书馆案例
    • 1.数据库配置
      • 作者模型(一方)
      • 书籍模型(多方)
    • 2.添加测试数据
    • 3.添加作者,书籍
    • 4.删除作者,删除书籍

10_图书馆测试数据添加[掌握]

  • 提示: 测试数据,见讲义文档

11_图书馆测试数据显示[掌握]

  • 步骤
    • 1.查询所有作者信息
    • 2.携带作者信息,渲染页面

12_图书馆添加数据[掌握]

  • 添加的逻辑分析:
    • 1.如果作者存在,书籍存在, 不能添加
    • 2.如果作者存在,书籍不存在,可以添加
    • 3.如果作者不存在,可以添加

13_图书馆删除书籍[掌握]

  • 步骤
    • 1.根据书籍编号获取书籍对象
    • 2.删除书籍对象
    • 3.重定向到页面展示

14_图书馆删除作者[掌握]

  • 步骤
    • 1.根据作者编号获取作者对象
    • 2.遍历删除,作者书籍对象
    • 3.删除作者,提交数据库
    • 4.重定向到页面展示

15_图书馆CSRFProtect应用[掌握]

  • 作用: 防止csrf攻击的[项目倒数第二天看源代码校验过程]
  • 使用步骤:
    • 1.导入类CSRFProtect
    • 2.使用CSRFProtect保护app
      • 一旦使用POST,PUT,DELTE,PATCH方式提交的时候就需要校验csrf_token
    • 3.需要设置SECRET_KEY,用来加密csrf_token
    • 4.设置csrf_token到表单中

16_表结构多对多分析[掌握]

  • 解释: 多对多的关系,一般会被拆分成两张一对多的表

17_表结构多对多代码演练[掌握]

  • 中间表:

    tb_student_course = db.Table("tb_student_course",db.Column("student_id",db.Integer,db.Foreign("students.id"))db.Column("courses_id",db.Integer,db.Foreign("courses.id"))
    )
    

18_表结构模板代码分析[了解]

  • 提示: 见keynote, PDF文档

19_数据库迁移[掌握]

  • 目的: 当数据库的表结构发生变化之后,如果直接删除原有的数据,再添加新的数据,有可能导致数据丢失
  • 注意点:
    • 1.是为了备份表结构,而不是数据
    • 2.如果想要备份数据,需要使用工具,navicat,mysqlworkbench,等等
    • 3.更新的过程数据一般不会丢失,做降级的时候需要谨慎操作
  • 操作流程:
    • 1.安装扩展
      • pip install flask_script
      • pip install flask_migrate
    • 2.导入三个类
      • from flask_script import Manager
      • from flask_migrate import Migrate, MigrateCommand
    • 3.通过Manager类创建对象manager,管理app
      • manager = Manager(app)
    • 4.使用Migrate,关联db,app
      • Migrate(app,db)
    • 5.给manager添加一条操作命令
      • manager.add_command(“db”,MigrateCommand)
    • 相关迁移命令:
      • 生成迁移文件夹[一次就好]
        • python xxx.py db init
      • 将模型类生成迁移脚本[重复执行]
        • python xxx.py db migrate -m ‘注释’
      • 将迁移脚本更新到数据库中[重复执行]
        • python xxx.py db upgrade/downgrade [version]
      • 其他命令
        • 查看最新版本的命令
          • python xxx.py db show
        • 查看当前版本
          • python xxx.py db current
        • 查看所有的历史版本
          • python xxx.py db history
http://www.hkea.cn/news/514943/

相关文章:

  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo
  • 涞水县住房和城乡建设局网站厦门seo专业培训学校
  • 网站建设销售招聘德阳seo
  • 平台网站建设的公司seozou是什么意思
  • wordpress 相册 主题seo整站优化技术培训
  • 做窗帘网站图片百度自动点击器下载
  • 飘雪影视大全免费观看视频快推达seo
  • 做网站的装饰标语seo宣传网站
  • 国外 平面设计 网站百度收录
  • 做网站话术简述搜索引擎的工作原理
  • 现在建设网站赚钱吗seo外链论坛
  • 青海网站建设企业海南百度竞价推广
  • 南京做网站yuanmus电脑突然多了windows优化大师
  • 美国做deals的网站软文营销经典案例优秀软文
  • 招标网站怎么做吴江seo网站优化软件
  • 苏州建设工程协会网站seo去哪里学
  • 上海正规网站制作价格可口可乐软文营销案例
  • 番禺网站 建设信科网络站长之家ping
  • 建筑工程施工承包合同关键词优化报价推荐
  • 网站可以免费看企业网站系统
  • 中华人民共和国建设部网站seo怎么快速提高排名
  • 南宁做网站的有几家东莞网络营销网站建设
  • 苏州知名网站建设开发新区seo整站优化公司
  • 政府建设网站计划书品牌营销策略包括哪些内容
  • 深圳市做网站百度seo排名点击器app
  • 五莲网站建设维护推广网络营销推广及优化方案
  • 重庆网红整站多关键词优化
  • 动易网站cms一级消防工程师考试