详情

全站展示位

Flask-SQLAlchemy 多表对单模型 | Leetao's Blog

前言在 Flask 中 Flask-SQLAlchemy 应该是最常用的 ORM 了,通过它来构建 Model 来映射数据库中的表。通常情况下都是一个表对应一个模型,这种方案很简单。那么如果是多个表对应一个模型的情况下,该如何处理呢?接下来结合一个具体的案例来讲解这一内容。 案例现在我有一个数据库 test.db,它的表如下: 有很多表并且表名类似,而且表名类似的表的结构相同,以 UPS1_2。。。

推荐

Python 描述符 | Leetao's Blog

学会描述符之后,不仅有更多的工具集可用,还会对 Python 的运作方式有更深入的理解,并由衷赞叹 Python 设计的优雅。——Raymond HettingerPython 核心开发者和专家 什么是描述符描述符 (Descriptor) 是 Python 中一个非常重要的特性,在实际应用中我们经常使用到它,但是也最容易被忽略,property、classmethod、staticmetho

心灵鸡汤

几回梦里又高考

文/汤云明

我的高考已经过去25年了,我也从青春年少变成了头发斑白,在中年里奔走的人了。

尽管时间如此的快,它可以掩埋和遗忘很多的东西。但高考,这个人生的十字路口却时常会在睡梦中把我惊醒,让我无法释怀。

1992年的那次高考我没有考好,最喜欢、最有实力的科目也没有发挥出正常的水平,所以,悲伤的离普通专科录取分数线少了无法抵达的5分。后来,尽管一些面向本地的师范专科生、定向委培生下降了10多分录取,但我当初什么志愿也没有报过,当然也就不可能被录取。这样,我几乎与大学失之交臂了。

其实,那时的高考还真是不容易,即使在县上最好的高中,一个班也就10多人能考上大学,其中还大部分是复读生,也就是说,本来三年制的高中几乎被变了四年制。要想考上大学,就要读第四年,应届毕业生中只有尖子生才能有机会拼得出来。

认命吧,就在我交了补习费进入下一年的班上复读时,转机又出现了。父亲给我找了个自费生大专学校。我害怕高中生活的没日没夜,更害怕再次落榜的无奈,所以就答应了父亲的好意安排。那时候刚刚开始尝试实行大学招生自费与公费双轨制,一般公费生叫全国统一招生,毕业后包分配工作,自费生就叫国家计划内自费生,按政策是“可工可干”。看各人的情况,毕业后可以和公费生一起由地方政府安排工作,也可以由父母所在单位内招,还可以是自谋职业。找个什么样的工作,就这要看各人的门路、造化和机遇了。

我所上的学校虽然不好,也没有名气,但我不敢辜负父母的期望,还是认真学习,几乎成了班上最刻苦的学生,也成了学校图书馆的“编外管理员”,管理员把图书阅览室的钥匙给我,让我可以随时出入,还顺便帮忙照看阅览室。所有学科成绩也还算优异。也就在这段较为苦闷的时间,我研读了很多关于文学和写作的书籍,开始了文学创作,上学期间,除了发表几十篇作品外,还有一点小稿费补贴生活。

两年以后,大专毕业,我的同学们,一些家在较为落后、边远地区的,由于本地每一年的大学毕业生少,自费生就可以和公费生一起由政府统一安排工作,当然,大多数是内招进入了父母的单位。我呢,父亲去找过所在单位和上级主管部门的领导,他们都不打算要,并以种种理由推辞。看着那些冰冷面孔,我也不想再为难年迈的父亲了,就和一家国有化工企业签订了入职协议。

九年后,我所在的国企改制成民营,又六年后,由于经济效益每况愈下,我咬牙辞职,并且招考成为了政府部门的合同制招聘人员。在企业的这十五年里,我当过车间设备维修工、生产操作工、党委宣传部宣传干事、厂报编辑,最后这几年又当生产管理人员。这些年,工作辛苦,生产生活环境又差,待遇低下,我的大好的青年时光就这样留在了这里。好在我一直坚持文学和新闻创作,让我在苦闷和无聊的生活中有了理想和精神寄托。这也成为我后来能顺利进入政府部门当办公室文员的优势和敲门砖。

也许,人的性格和命运难以改变,但我们可以通过自己的努力和奋斗去做一些争取,去创造改变命运的安排下的时间、机遇和空间。有几句话说得好:机遇只会留给有准备的人;就算有人想拉你一把,还得先要找到你的手在哪儿。

二十五年前的高考由于自己努力不够,发挥也不好,没能上个好大学,找个好工作,成为了我一辈子的痛。这些年来,我甚至于有些耿耿于怀。所以,时常会在梦里又进入了那个紧张的高中生活、考试中。好多次,我会在做题、考试或成绩中惊醒,等回过头来,那已经是过往烟云,今生今世不可能再重来、再企及。

擦干眼角的泪水,现实就在眼前。只有珍惜现在所拥有的一切,感恩在当下,好好的工作和生活每一天,关爱自己的亲人和家庭,修身养德,锻炼身体,做一个好人。这样,才对得起我流逝的青春时光和来过的高考岁月。

列表展示

主站展示位

Number of Boomerangs | Leetao's Blog

Given n points in the plane that are all pairwise distinct, a “boomerang” is a tuple of points (i, j, k) such that the distance between i and j equals the distance between i and k (the order of the tu

py2app 打包相关问题 | Leetao's Blog

前言最近一直在研究用 py2app 给自己写的 PyQt5 应用打包应用,在打包过程中遇到了一次问题,写在这里备忘一下。 问题问题一 AttributeError: module ‘string’ has no attribute ‘maketrans’ 这个问题从网上查找了一下发现好像是 PyQt 的问题,但是到现在也没有被修复。 解决方法:修复起来也很简单,由于出问题的地方在 ascii_up

Longest Harmonious Subsequence | Leetao's Blog

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1. Now, given an integer array, you need to find the length of its longest harm

Wiggle Sort II | Leetao's Blog

Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3].... Example:(1) Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6].(2) Given nums = [1,

SpringBoot 使用 @Valid 配合 BindingResult 校验数据 | Leetao's Blog

前言在实际开发过程中,经常需要对前端传来的数据模型进行校验,一般情况下都是写一个专门的校验函数去校验,这种方式很显然不适合复杂的项目,因为随着项目复杂度的增加需要校验的数据模型越来越多,并且在开发过程中可能也需要时常修改数据模型,这就导致原来的校验方法可能需要时常的变动,也不利于维护。因为我们需要一种更简单的方式去完成这个工作。 @Valid 和 BindingResultSpringBoot 在

ModuleNotFoundError No module named 'PyQt5.sip' | Leetao's Blog

前言最近用 pyqt5 开发了一款图形化界面工具,完成之后用 pyinstaller 将其打包成 exe 后出现了问题: ModuleNotFoundError: No module named ‘PyQt5.sip’ 解决方法通过在网上查找一些资料,找到三种办法,网上都有人说成功了. 方法一安装旧版本 pyqt5,原因是: pyinstaller 内置的 sip 版本与最新的 pyqt5 不

Minimum Index Sum of Two Lists | Leetao's Blog

Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite restaurants represented by strings. You need to help them find out their common interest with the l

导出 VuePress 构建的网站为 PDF | Leetao's Blog

前言学 Rust 也有一段时间了,网上也有不少官方文档的中文翻译版,但是似乎只有 Rust中文网站 文档一直是最新的,奈何并没有 PDF 供直接下载,是在是不太方便,为了方便阅读以及方便后续文档更新,决定用 Python 写一个爬虫将网页下载下来保持为 PDF. 最后完成结果如下: 是的没错,将官网样式也保留下来成功转为 PDF,接下来分享一下整个爬虫的过程,最终的爬虫可以导出任意 VuePre

Counting Sort | Leetao's Blog

前言 In computer science, counting sort is an algorithm for sorting a collection of objects according to keys that are small integers; that is, it is an integer sorting algorithm. It operates by countin

Scrapy 中 spider 覆盖默认的 pipelines | Leetao's Blog

前言scrapy 是 python 中一个优秀的爬虫框架,基于这个框架,用户可以快速构建自己的爬虫程序。框架涉及很多模块,其中有两个核心概念 items 和 item pipelines。 Items: 爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页。 Scrapy提供 Item 类来满足这样的需求。Item 对象是种简单的容器,保存了爬取到得数据。 其提供了 类似于词典(dict

Rust笔记-数据类型(二)-- 复合 | Leetao's Blog

这是自己学习 Rust 的学习笔记,由于 Rust 语言处于初期,变动可能会比较大,文章不一定会及时同步,学习过程中需要仔细甄别 复合类型复合类型(Compound types)可以将多个值组合成一个类型。Rust 有两个原生的复合类型:元组(tuple)和数组(array) 元组元组是一个将多个其他类型的值组合进一个复合类型的主要方式。我们使用包含在圆括号中的逗号分隔的值列表来创建一个元组。元组

list1 += list2 和 list1= list1 + list2 的故事 | Leetao's Blog

前言前几天在某乎上有人问问题,问道 list.append(ele) 和 list = list + [ele] 一样吗? 这个问题的答案自然是不一样的,这里就不过多描述了.重要的是,借由这个问题,我产生了一个新的问题: list1 += list2 和 list1= list1 + list2 这两者有区别吗 先说结论,自然是有区别的. 测试花一分钟看个两个例子,如果你能正确的知道输出结果,那

Parsing error x-invalid-end-tag | Leetao's Blog

问题前端时间使用iview进行开发,在运行过程中出现类似下图的错误: 解决办法.eslintrc.js 的 rules 加上 1"vue/no-parsing-error": [2, &#123; "x-invalid-end-tag": false &#125;] 参考链接Parsing error: x-invalid-end-tag Col comp

Set Mismatch | Leetao's Blog

The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of the numbers in the set got duplicated to another number in the set, which results in repetition of o

Runtime.getRuntime().exec -- Cannot run program CreateProcess error=2, The system cannot find the file specified | Leetao's Blog

问题原因最近有个需求用Java调用nginx -V并返回输出,查了一下决定使用Runtime.getRuntime().exec()去执行命令.代码如下: 1process = Runtime.getRuntime().exec(cmd, null, dir); 最初调用函数将正确路径和cmd都传入进去,其中cmd为nginx -V,但是返回下列错误: Cannot run program “

Find the Difference | Leetao's Blog

Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find the letter that was added

wtforms 使用的一些问题总结 | Leetao's Blog

Q&A Q1. 用IntegerField来限制form只能用数字 但是发现它只能接受1以上 不能接受0 如何设置 A1:添加代码validators=[InputRequired()] Q2. 让 IntegerField 的输入框只允许输入数字,即选渲染后的输入框类型为 number A2: 添加代码widget=NumberInput(), 引入 from wtforms

Distribute Candies | Leetao's Blog

Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these

Number of Boomerangs | Leetao's Blog

Given n points in the plane that are all pairwise distinct, a “boomerang” is a tuple of points (i, j, k) such that the distance between i and j equals the distance between i and k (the order of the tu

Contains Duplicate II | Leetao's Blog

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.

博客寄语:

    一个爱折腾的90后,喜欢写有趣的代码,做有趣的事

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。