web2py 中的复合键

2023-12-01

我在 web2py 中定义了一个表

db.define_table(
'pairing',
Field('user',writable=True,readable=True),
Field('uid', writable=True , readable=True)
)

该表需要具有唯一的用户和 uid 组合。我已经浏览了 web2py 文档,但没有直接的方法来定义复合键。 我们如何在web2py中定义复合方式


这取决于您想要做什么。默认情况下,web2py会自动创建一个自增id字段作为每个表的主键,这是尽可能推荐的方法。如果您正在处理具有复合主键的旧数据库并且无法更改架构,则可以指定primarykey属性,尽管有一些限制(如所解释的here):

db.define_table('pairing', 
    Field('user', writable=True, readable=True), 
    Field('uid', writable=True, readable=True),
    primarykey=['user', 'uid'])

也许您实际上并不需要真正的复合主键,但您只需要某种方法来确保仅将唯一的用户/uid 值对插入到表中。在这种情况下,您可以通过指定正确构造的IS_NOT_IN_DB两个字段之一的验证器:

db.define_table('pairing',
    Field('user', writable=True, readable=True),
    Field('uid', writable=True, readable=True))

db.pairing.uid.requires=IS_NOT_IN_DB(db(db.pairing.user==request.vars.user),
    'pairing.uid')

这将确保uid在记录集中是唯一的,其中user匹配新值user被插入(所以组合user and uid必须是唯一的)。请注意,验证器(例如 IS_NOT_IN_DB)仅在通过插入值插入时应用。SQLFORM或使用.validate_and_insert()方法,因此上述方法不适用于表中的任意插入,但主要用于用户输入提交。

您还可以使用 SQL 在表上设置多列唯一约束(您可以直接在数据库中或通过 web2py 执行此操作).executesql()方法)。即使有这样的限制,您仍然希望在应用程序中进行一些输入验证,以避免数据库出现错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

web2py 中的复合键 的相关文章

  • 是否可以模拟 Python 3.6 中的内置 len() 函数?

    是否可以模拟内置len Python 3 6 中的函数 我有一个类定义了一个简单的方法 该方法依赖于len 函数如下 class MyLenFunc object def is longer than three characters se
  • 操作数无法与形状 (128,) (0,) 错误一起广播

    我正在尝试实现面部识别登录系统 但出现错误 操作数无法与形状 128 0 一起广播 我不知道什么或如何解决它 这是我已实现的 view py 和 FaceDetector py 以及我从服务器收到的错误 errors Traceback m
  • DataFrame 在函数内部修改

    我面临一个我以前从未观察到的函数内数据帧修改的问题 有没有一种方法可以处理这个问题 以便初始数据帧不被修改 def test df df tt np nan return df dff pd DataFrame data 现在 当我打印时d
  • Spark MLlib - 训练隐式警告

    我在使用时不断看到这些警告trainImplicit WARN TaskSetManager Stage 246 contains a task of very large size 208 KB The maximum recommend
  • Python 在 chroot 中运行时出现错误

    我尝试在 chroot 中运行一些 Python 程序 但出现以下错误 Could not find platform independent libraries
  • 底图上的子图

    我有一张英国地图和 121 个地点 每个地点有 3 个值 我想绘制 121 个位置中每个位置的三个值的小条形图 目前 这些值绘制为markersize属性 看起来像这样 密集恐惧症情节 https i stack imgur com 5fv
  • Python 遍历目录树的方法是什么?

    我觉得分配文件和文件夹并执行 item 部分有点黑客 有什么建议么 我正在使用Python 3 2 from os import from os path import def dir contents path contents list
  • 为什么导入 pdb 时出现此错误? “模块”对象没有属性“ascii_letters”

    尝试调试我的代码 我正在导入库pdb import sys from subprocess import check call import pdb functions if name main Code 我收到此错误 File reg p
  • 如何找到列表S的所有分区为k个子集(可以为空)?

    我有一个唯一元素列表 比方说 1 2 我想将其拆分为 k 2 个子列表 现在我想要所有可能的子列表 1 2 1 2 2 1 1 2 我想分成 1 1 2 我怎样才能用 Python 3 做到这一点 更新 我的目标是获取 N 个唯一数字列表的
  • 使用 Scipy imsave 将 Numpy 数组保存到图像时保留未更改的数据

    使用 Scipy 保存二维 Numpy 数组 单个值 时toimage or imsave像素值与 Numpy 数组中的像素值不完全匹配 相反 在某些区域 主要是边缘 图像算法似乎使用某种插值 是否有一个选项可以停止插值并保留准确的数据 例
  • Django 的 URL 覆盖率测试为 0%,为什么?

    使用姜戈鼻子 我对 URL 进行了测试 但 URL 覆盖率仍然为 0 为什么 python manage py 测试配置文件 这是我的报道 Name Stmts Miss Cover Missing profiles 0 0 100 pro
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • str.translate 给出 TypeError - Translate 采用一个参数(给定 2 个参数),在 Python 2 中工作

    我有以下代码 import nltk os json csv string cPickle from scipy stats import scoreatpercentile lmtzr nltk stem wordnet WordNetL
  • Python 视频框架

    我正在寻找一个 Python 框架 它将使我能够播放视频并在该视频上绘图 用于标记目的 我尝试过 Pyglet 但这似乎效果不是特别好 在现有视频上绘图时 会出现闪烁 即使使用双缓冲和所有这些好东西 而且似乎没有办法在每帧回调期间获取视频中
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并
  • 最小硬币找零问题——回溯

    我正在尝试用最少数量的硬币解决硬币找零问题 采用回溯法 我实际上已经完成了它 但我想添加一些选项 按其单位打印硬币数量 而不仅仅是总数 这是我下面的Python代码 def minimum coins coin list change mi
  • SQLAlchemy:避免声明式样式类定义中的重复

    我正在使用 SQLAlchemy 并且我的对象模型中的许多类具有相同的两个属性 id 和 整数和主键 以及名称 字符串 我试图避免在每个类中声明它们 如下所示 class C1 declarative base id Column Inte
  • issubclass() 对从不同路径导入的同一类返回 False

    目的是实现某种插件框架 其中插件是同一基类 即 A 的子类 即 B 基类使用标准导入加载 而子类使用 imp load module 从众所周知的包 即 pkg 的路径加载 pkg init py mod1 py class A mod2

随机推荐

  • 如何在Ubuntu上验证Github? git: 'credential-netrc' 不是 git 命令

    I read this我已经检查了我的凭据 但仍然无法 git Push git push set upstream origin master git credential netrc is not a git command See g
  • 如何使用 shell 脚本迭代每行多个单词的文本文件?

    我知道当文本文件的内容如下时如何迭代文本行 abc pqr xyz 但是 如果我的文本文件的内容如下所示 怎么办 abc xyz cdf pqr lmn rst 我需要将值 abc 存储到一个变量 将 xyz 存储到另一个变量 我该怎么做呢
  • INotifyPropertyChange ~ 当属性是集合并且新项目添加到集合中时,PropertyChanged 不会触发

    我有一个实现 INotifyPropertyChanged 接口的类 该类的一些属性是 List 类型 例如 public List
  • 跨浏览器检测浏览器窗口scrollTop的方法

    检测浏览器窗口的scrollTop的最佳跨浏览器方法是什么 我不喜欢使用任何预构建的代码库 因为这是一个非常简单的脚本 而且我不需要所有这些负担 function getScrollTop if typeof pageYOffset und
  • 从按钮命令 xamarin.forms MVVM 获取 ListView

    我在使用 MVVM 模式的 xamarin forms 应用程序中的 ListView 上遇到问题 我希望你能帮助我 这是我的 xaml
  • Elasticsearch 嵌套过滤器包含与排除

    我有一个使用嵌套对象的对象映射 props在我们的示例中 以类似标签的方式 每个标签可以属于一个客户 用户 当我们希望允许我们的用户生成query string风格搜索针对props name 问题是 当我们运行查询时 一个对象是否有多个
  • 如何在 Excel 中生成 GUID?

    我有一个excel文件 每一行都有一个订单 我希望每个订单都有一个唯一的标识符 所以会有一个唯一ID列 每次填充一行时 我希望 Excel 自动为我填充 唯一 ID 列 我做了一些研究 并被指出了 GUID 的方向 我找到了以下代码 Fun
  • android 如何实现 onTouch 功能?

    您好 我想创建一个加载大图像的应用程序 并且我可以通过简单的手势在它上面移动 我必须打印图像 但我无法实现 onTouch 因此它保持静止 任何帮助都可以 谢谢 我绘制图片的代码 Override protected void onDraw
  • 无法使用具体子类在 Swift 中实现协议中的属性

    我正在做类似于JAVA中的桥接模式的事情 DriverType是一个协议需要一个名为vehicle成为一个Drivable目的 Drivable也是一个协议 被 Car 类采用 protocol Drivable var speed Dou
  • 如何将 OpenFileDialog 函数应用到 Web 应用程序

    我正在开发一个Web应用程序 其中一个页面有一些必要性 用户应该选择系统中的任何文件夹 例如如果他选择ex D xyz 那么这个路径应该保存在数据库中 我已经编写了代码用于存储到数据库并保留所有内容 但实际上我认为 如果它就像一个浏览按钮单
  • elisp如何检查Shift键是否被按下

    我需要检查是否按下了 Shift 键 更确切地说 我想根据是否按下 Shift 键来设置直接开关 defadvice find file noselect around find file noselect set switches act
  • 如何在 C# 中跳过第一行并从第二行开始读取文件

    如何从第二行开始读取文件跳过第一行 这似乎可行 但这是最好的方法吗 using StreamReader sr new StreamReader varFile Encoding GetEncoding 1250 string string
  • System.Data.SqlClient.SqlException:用户 XXX 登录失败

    我正在 IIS 7 5 上部署一个 Web 应用程序 该 Web 应用程序有三种自行车供用户选择 山地自行车 公路自行车和旅行自行车 当我点击每个它时 我遇到了问题 System Data SqlClient SqlException 用户
  • 如何禁用 jQuery.Mobile.MVC?

    我为我的网站构建了移动视图 并且仍在创建它们的过程中 我想测试它在实时设备上的外观 所以我想禁用 mobile 文件 下面我厌倦了运行一些脚本来禁用但没有运气 也许这对开发人员来说是一个问题 但如果有人能给我指出正确的方向 你需要禁用自动初
  • JAXB 中的解组如何工作?

    我在 jaxb 中有一个元素的 getter setter 对 XmlElementWrapper name requires required true XmlElement name equals required true List
  • AS3 参数

    为什么您认为下面的代码不起作用 您将更改 添加什么以使其正常工作 任何帮助表示赞赏 function TraceIt message String num int trace message num function aa f Functi
  • 如何允许通过 http 匿名推送到 git 存储库?

    我在这里找不到例子 http www kernel org pub software scm git docs git http backend html 是否可以 将其添加到您的 httpd conf 假设 srv git 包含您的存储库
  • 我可以使用 SQLite 作为基于云的网站的数据库存储吗?

    有没有人启动过使用本地 SQLite DB 作为主要数据源的基于云的应用程序 网站 有这方面的警告吗 我的环境 C 3 0 应用程序 目前使用sql server 2008 db 当前数据库大小 30 mb 如果您预计会有大量流量 那么您确
  • Excel 根据名称查找工作表

    这不是一个问题 而是一个解决方案 但我想在这里分享它 因为我在这里得到了我需要的帮助 我想在活动工作簿中查找特定的 Excel 工作表 并按工作表名称进行搜索 我构建这个是为了找到它 这是一个 包含 搜索 如果找到 会自动转到工作表 或者询
  • web2py 中的复合键

    我在 web2py 中定义了一个表 db define table pairing Field user writable True readable True Field uid writable True readable True 该