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

无经验可以做网站编辑吗seo推广是做什么

无经验可以做网站编辑吗,seo推广是做什么,自己做的网站,阿里云服务器上如何做网站前置阅读,关于Flask-SQLAlchemy支持哪些数据库及基本配置,链接:Flask-SQLAlchemy_数据库配置 摘要 本文以一段典型的 SQLAlchemy 代码示例为引入,阐述以下核心概念: 模型类(Model Class) ↔ 数…

前置阅读,关于Flask-SQLAlchemy支持哪些数据库及基本配置,链接:Flask-SQLAlchemy_数据库配置

摘要

本文以一段典型的 SQLAlchemy 代码示例为引入,阐述以下核心概念:

  1. 模型类(Model Class) ↔ 数据库表(Database Table)
  2. 类属性(db.Column) ↔ 表字段(Table Columns)
  3. 外键(ForeignKey) ↔ 关系映射(relationship)

通过集中解释属性定义、关系概念与示例,帮助读者快速掌握 SQLAlchemy 在 Flask 应用中的基本用法。


1. 代码示例

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime# 初始化 Flask 应用
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'  # 使用 SQLite 数据库
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False# 初始化 SQLAlchemy
db = SQLAlchemy(app)# 用户模型(映射 user 表)
class User(db.Model):id            = db.Column(db.Integer, primary_key=True)username      = db.Column(db.String(50), unique=True, nullable=False)password_hash = db.Column(db.String(255), nullable=False)posts         = db.relationship('Post', backref='author', lazy='select')# 内容模型(映射 post 表)
class Post(db.Model):id          = db.Column(db.Integer, primary_key=True)content     = db.Column(db.Text, nullable=False)create_time = db.Column(db.DateTime, default=datetime.utcnow)user_id     = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)# 创建所有模型对应的数据库表
with app.app_context():db.create_all()

2. 核心概念

2.1 模型类(Model Class) ↔ 数据库表(Database Table)

  • 每个继承自 db.Model 的类都对应一张数据库表,默认表名为类名小写(如 User 类对应 user 表)。
  • 在执行 db.create_all() 时,SQLAlchemy 会检查数据库中是否存在对应的表:若表不存在则根据模型定义创建新表;若表已存在,则不会对其进行修改或删除,从而保证不会重复创建或覆盖已有数据。

2.2 类属性(db.Column) ↔ 表字段(Table Columns)

在 SQLAlchemy 中,通过 db.Column() 在模型类中定义字段,其调用签名为:

db.Column(type_, *args, **kwargs)
  • type_:字段的数据类型,如 db.Integerdb.String(长度)db.Textdb.DateTime 等。

  • *args:可选位置参数,如 db.ForeignKey('表名.字段名')

  • **kwargs:关键字参数控制字段约束与行为,包括:

    • primary_key=True:主键。
    • unique=True:唯一约束。
    • nullable=False:非空约束。
    • default=...:Python 层面的默认值。
    • server_default=text('...'):数据库层面的默认值(需导入 from sqlalchemy import text)。
    • index=True:创建索引。
    • autoincrement=True:整型主键自动递增。
    • comment='...':列注释。
    • doc='...':ORM 文档字符串。

2.3 外键(ForeignKey) ↔ 关系映射(relationship)

2.3.1 外键(ForeignKey)
  • 外键 是关系型数据库中用于维护表间引用完整性的约束机制,本质是一张表(子表)中的列,其值必须匹配另一张表(父表)中某列(通常是主键)的有效值。
  • 需要通过 db.Column 中传入 db.ForeignKey('目标表.目标列') 来定义,对应数据库表中的一列

示例

# Post 模型中的外键字段,定义为类属性,映射到数据库表的 user_id 列
user_id = db.Column(db.Integer,db.ForeignKey('user.id'),   # 在 Column 中声明外键nullable=False
)
2.3.2 关系映射(relationship)
  • 关系映射 用于在模型之间建立对象关联:它不在数据库中创建新列,而是为模型添加属性,方便在 ORM 中通过属性访问相关对象。

relationship('TargetModel', backref='reverse_attr', lazy=...),即可实现双向导航:

  • 目标模型名 ('TargetModel'):指定关联的模型类名称(字符串形式)。
  • backref 参数:在目标模型中创建反向属性 reverse_attr,可以自动关联到唯一外键。
  • lazy 参数:控制加载策略,如 select(默认,访问时发起查询)、joined(关联加载)、subquery 等。
示例:一对多关系
class User(db.Model):# ... 字段定义 ...posts = db.relationship('Post',         # 目标模型类名backref='author',  # 在 Post 中创建 author 属性lazy='select'      # 默认延迟加载)class Post(db.Model):# ... 字段定义 ...user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
  • posts 属性(“一”方)
    • user.posts 返回一个列表,包含该用户所有的 Post 对象。
  • author 属性(“多”方)
    • post.author 直接返回对应的 User 对象。
http://www.dtcms.com/wzjs/43574.html

相关文章:

  • 邢台专业做移动网站重庆网站建设推广
  • 网站建设什么时候好自己做网站流程
  • 广告设计专业周记建站seo推广
  • 北京企业网站建设哪家好企业网站关键词优化
  • 阿里云申请域名做网站网站制作的流程是什么
  • 西双版纳北京网站建设免费的域名和网站
  • 深圳做网站好的网站建设公司seo com
  • 备案ip 查询网站兰州搜索引擎优化
  • 学校的网站怎么做深圳百度seo培训
  • 微信小网站制作长沙网站推广排名优化
  • wordpress单栏极简聊城seo整站优化报价
  • 建站优化信息推广谷歌浏览器下载视频
  • wordpress x 主题我们seo
  • 做网站之前要先购买服务器吗免费推广的方式有哪些
  • 宁波外贸网站推广东莞搜索优化
  • 简单模板网站制作时间品牌推广方案策划书
  • 庆祝网站上线banner图片网络广告宣传怎么做
  • 做网站专题页的字大小是多少百度关键词seo排名
  • 淘宝网站的建设目的是什么意思网络媒体
  • wordpress无法设置主页seo网络培训
  • 嘉兴网站建设运营推广自己产品的文案
  • 长沙网站排名公司网络公司网站建设
  • 为女朋友做的表白网站南宁关键词优化服务
  • 建设通网站免费注册优化培训内容
  • 广州网站建设哪个公司做得好些淘宝引流推广平台
  • 网站建设it网推是干什么的
  • 郑州炫彩网站建设个人网站怎么建立
  • 网站建设哪种语言好百度宁波营销中心
  • 上饶网站建设多少钱商丘网站建设公司
  • 怎样做网站api接口新站seo竞价