导航:首页 > 编程语言 > Python水浒传运行代码

Python水浒传运行代码

发布时间:2024-10-30 07:59:26

1. 谁有水浒传中吴用智取生辰纲的剧本,快呀!!!!!!!!!!!

智取生辰纲剧本

林中路上,十几个军健各挑一副担子,远远走来,杨志和谢都管及两位虞侯随行。不时有军健互
说几句笑话。擦擦头上的微汗。
杨志在怀中摸摸,摸出一信信札,是梁中书给蔡京的。他看了看,又装进怀里。
两位虞侯一左一右跟着谢都管。谢都管微喘着走在最后,拉开了一些距离。
虞侯乙:老都管累不累?
谢都管:累也得一步一步走啊。
路上,军健们仍在行走。渐渐没人说话,只有脚步和挑担的格吱声。还有喘气声。是谢都管。
他有些走不动了,不想走了。
谢都管:停下!
杨志回过身来,看着老都管。老都管气喘吁吁走了上来,两个虞侯搀扶着他。
杨志:怎么啦?
谢都管:我,我走不动了。
杨志:现在天热,夜里赶路凉快。趁凉赶路,天热时歇息,不是说好吗?
虞侯甲:瞌睡就是晚上睡的,现在颠倒了,歇息不好,也难赶路。
杨志不理虞侯,只是好言劝着谢都管。
杨志:谢都管,这样的走法,也是无奈而为之,既怕强贼劫掠,又怕误了六月十五日太师的生辰。你我有恩相重托在身,万一这两样哪样有个差错,如何交待?
虞侯甲:但老都管上了年纪,不能跟军健们比呀,下面要遇着村店,弄台软轿抬着。
杨志:军健们都挑着重物,就你二人没有行李,找抬软轿,也就有你们两个抬了。
虞侯反不上话来,几个军健闻言窃笑出声了。
谢都管:我谁也不要抬着,走。
杨志对军健们:还不快走!
一行人又匆匆赶路了。谢都管拄着杨志给他的那根简易手杖,咬牙努力走着。
杨志:都把劲鼓起来,到了东京,每人都有重赏。
似乎也没引起应有的回应。军健们没人回应他的鼓励。
虞侯甲:赏什么啊。到不了东京,这骨头都散架了。杨提辖,我不信你是铜铸铁打的。怕是想升官拿赏的心思撑着你吧?
杨志生气:这话你真能说出口!你身为虞侯,受中书大人提携,稍有些良心,就该和我同心协力,把这生辰纲平安送到东京才是。你不但不给军健们鼓劲,反而阴阳怪气的发牢骚,怨天怨地,泄大家的气。如果不想走,就给我回去!
虞侯甲:我倒没什么,担心的是老都管……
谢都管不吱声,努力走着。
杨志朝军健们:都听着,谁要不听提调,无事生非,我手里的这把刀是不认人的。
这分明是吼给两位虞侯听的。他们不敢再吭声了。
虞侯甲:老都管你看,不过一个提辖,都把自己当什么了。一路上尽给我们脸色看。
谢都管嘘了一口气,一脸无奈:临行时中书大人说了,路上不要和他闹别扭,所以我就不吱声,全由着他了。忍着点儿吧,熬到东京就好了。
两位虞侯不再说什么。高一脚低一脚朝前艰苦行走。路越发难走了。
到了黄泥岗,烈日当空。艰难的军健们走过了一块石碑。石碑上写着“黄泥岗”三个字。
不远处是一片松林。每个人都已口干舌燥。杨志也一样, 但神情依然严峻。意志在支持着他。
两个虞侯疲惫不堪,两条腿已不大听使唤了。谢都管自然更为狼狈。
到松树林了。
一军健说了声:我走不动了!
和挑担一起倒在了道路左边的树荫里,大张着嘴喘气,头脸上大汗啉漓。
军健们像受了传染,到了树荫里,腿都软了,纷纷倒地,坐着,卧着,不肯走了。
杨志:你怎么就不明白,这黄泥岗方圆十几里没有人家,正是强寇出没的地方。
谢都管:提辖,这天热的也实在不能走了,就歇会儿再走吧。
杨志:谢都管,你怎么也说这话。
谢都管脸一沉:我走不动了。要么你让他们先走,我可是要歇会儿。
虞侯甲:前些天你说白天歇晚上走,趁天凉赶路,这些天怎么又变了,非要大热天赶路?
杨志:前些天走的什么路这些天是什么路?这种路夜里敢走?
军汉们见谢都管和虞侯也要歇,胆子大了。
一军汉:我们挑着百十斤的担子,你空着手走,就不知挑担人的难处。你不把我们当人看!
杨志:畜牧,看我抽你!
说着就要打。
谢都管:慢着!
杨志停住了,看着谢都管。
谢都管(教训的口气):我在东京太师府里给中书夫人做官时,门下的军官见过千万,没一个你这般不懂礼教的。这些军健,一路没少受苦,你想打就打想骂就骂,是想耍你提辖的威风,还是显你杨志的能耐?你看看,都是皮肉之身,成什么样子了,就不能歇会儿?
杨志又气又急:都管,你整日进出于相府,不知这行路人该要忍受的艰难……
谢都管:四川两广老夫也曾去过,你别在我面前卖弄。
军健们:还是老都管体恤咱们。
杨志:放屁!遇上强贼,你们就只有瞪眼的功夫了。
谢都管:嗨杨提辖,我今个就是不信了。
杨志正要言辞相对,只见对面松林里有个人影在探头探脑。杨志突然紧张起来,抽出刀。
杨志:谁?
人影一闪,不见了。
杨志紧张地:对面松林有人,都给我起来!
军健们立刻也紧张起来,找着各自的刀。两个虞侯和谢都管瞪着眼,互相看着。
杨志挺着朴刀,朝对面松林走去。看见了什么,顿了一下。突然一跃,跳过去,大吼一声。
杨志:都别动!
两虞侯挺刀跟上去,看见松林里摆着七辆江州车儿。
七个汉子正在树荫里乘凉,听见杨志的吼声,惊叫一声坐起来,慌恐的看着杨志和两个虞侯。
杨志:你们是什么人?
没人敢回话。
杨志:说!不说就宰了你们!
刘唐装作个胆大的:你是什么人?
阮氏兄弟:莫非遇上贼人了?
杨志扫着七辆车子,见他们并无刀械,稍放心了一些,挺着的刀也不紧张了。
杨志:哪儿来的?
晁盖:濠州来的,结伴去东京卖枣子。
杨志闪着眼睛,不信。
晁盖:除了车上的枣子,我们没什么银钱,大人要抢,只管连车推去,只要放了我们兄弟性命。
两位虞侯完全放心了,提了刀,回去了。
杨志却不放心,走过去,撕开车上的口袋,确实是干枣子。又挨个儿捏了一遍,没发现什么刀械
一类的东西,从七个人的脸上也看不出什么异常来,这才真放心了。
杨志:为什么在这儿歇息?
晁盖:太热了,待凉快些再走。
杨志:就不怕强贼劫掠。
晁盖一笑:就一点赶路的盘缠,若遇上强人,尽可拿去。所以也就胆大些。
杨志应着声,要走。
晁盖:要么,取些枣子?
杨志:不了不了,你们歇息吧。
两个虞侯提着刀回到了松林,军健们一脸疑问看着两个虞侯。两个虞侯坐到谢都管跟前。
虞侯甲:几个贩枣子的,虚惊一场。
说着,枕着朴刀睡了。军健们纷纷放了刀,嘘了一口气,各自倒头歇息。
杨志走了回来靠着一棵松树也躺下了,他也是很累了。
松林里安静下来。一阵歌声传了过来。杨志起身。确是有人在唱歌。杨志循声看去——
白胜挑着两只桶边唱边过来:赤日炎炎似火烧野田禾苗半枯焦农夫心内如汤煮王孙公子把扇摇…
白胜走近了。几个军健坐起来。杨志看着白胜,感到有些蹊跷。到跟前了。
军健:哎,桶里装的什么?
白胜似乎被这一声喝问吓了一跳。
军健:问你话呢!
白胜放下担子:白酒。
听见是酒,又有几个军健坐起来。
军健:往哪儿挑?
白胜:岗子下边的村里去卖。
军健:一桶卖多少钱?
白胜:五贯。
杨志冷眼看着白胜。白胜挑起担子要走。
军健们:别走别走。(互相商量)咱又热又渴,何不买他一桶吃?凑钱凑钱,买桶酒吃。
军健们凑钱了。
杨志跳了起来:大胆!没我的话,谁敢买这酒吃?
两个虞侯和谢都管也坐起来了。
军健:提辖,我们自己凑钱买酒也不行?
杨志:这哪行,你们知道什么?就不怕为贪嘴让蒙汗药麻翻你们?
军健们真让杨志的话吓住了,怔了:这…
白胜不满了:哎我说这位客官,不是我硬要卖给你们吃。不买倒罢了,怎么说这样无礼的话来,败坏我卖酒人的名声?
杨志:走你的路卖你的酒去,不和你说话。
百胜转身准备走了,晁盖等人从对面的松林里出来了。
晁盖:客官请慢。
白胜:怎么了?
晁盖:这酒给你钱为何不卖?
军健们看着晁盖和白胜。
白胜:我这酒里有蒙汗药。真是,笑话。
白胜一脸嘲讽,白了杨志一眼,挑着桶还是要走。晁盖宽容地笑笑,拦住了白胜。
晁盖:这地方前不着村后不着店,是谁都难怪起疑心。
白胜:有疑心就请开,我这酒不是卖不出去,硬赖着你们吃。
晁盖又一拦:你看你看,说句话有什么要紧。有没蒙汗药一吃便知,我们几个渴得难奈,买你一桶吃。
白胜:就是卖给你们,也没碗没瓢。
晁盖:我们有椰瓢。(对刘唐)取瓢去,再取些枣子来下酒。
刘唐和阮小二哎了一声,转身回去拿瓢取枣。
晁盖:多钱?
白胜:五贯一桶,不还价。
晁盖掏钱:不还价,给你,我们买一桶。
刘唐阮小二已取来椰瓢和一捧枣子。阮小二把枣子倒在地上。晁盖拿过椰瓢,揭开桶盖,在两只桶里各舀了一瓢,喝了一口,咂咂舌头。
晁盖:一样的味道,就这一桶。
这边的军健们闻到了酒香,咂着焦渴的嘴唇。杨志不动声色,看着。
晁盖等七个人围着一只酒桶,用那只椰瓢舀着,就干枣大喝起来。军健们看得馋了。
刘唐:客官,让一贯钱那一桶我们也吃了。
白胜:要买便买,一文价不让。
晁盖:再取瓢去。
刘唐返身去了,一会儿又出来了,见白胜不注意,揭开另一只桶盖,想偷一瓢酒。
刚伸进去,咕咚一声。白胜猛一回头,夺过刘唐的椰瓢。瓢中有药粉。白胜把椰瓢塞进桶里,盖
上桶盖,一脸恼怒。
白胜:你这人太不君子了。怎么偷酒吃?
刘唐:买你一桶,也没还价,饶一瓢吃也不行?
晁盖:别和酒家耍笑,要吃再给钱买了就是。
军健们急了,有几个围到谢都管跟前去。
军健:老都管,人家吃得,我们为何就吃不得。你给提辖说说,让我们吃几口润润喉咙。
谢都管心动了,对杨志:就让他们吃一桶吧。他们已吃了半晌,没事。
杨志看着另一只酒桶。
谢都管:那大汉也吃了这只桶里的酒,要有药,他早翻了。
众军健:杨大人,求你了。
众军健一脸哀求。杨志心软了。 军健们见杨志没说话,便一齐跑过去,提了那只酒桶往回走。
白胜:哎哎,这桶酒我不卖。
白胜追过来,要夺酒桶。
谢都管走过来:我说客官,为一句不打紧的话生气就不值了。
白胜白了杨志一眼,蹲到一边去了。
晁盖他们只喝酒,并不看这边。一军健跑过去,借椰瓢。
军健:请匀把瓢行不?
晁盖:还有瓢,给他们两把。
军健拿走正喝的两把瓢,刘唐又取来了两把,继续喝酒。刘唐捧些枣子过去。
刘唐:都是行路人,送几个枣子下酒。
军健舀了两瓢,给杨志和谢都管。谢都管没客气,大口灌了。杨志看着瓢里的酒。
军汉:喝一瓢吧。
杨志喝了半瓢,不喝了。军健们又给两个虞侯各喝了一瓢,然后围着酒桶抢喝起来。喝过的都倍
感舒心畅快。一桶酒很快喝完了。
谢都管掏出了五贯钱给了白胜。白胜提着酒桶过去,挑起另一只,悠悠然走了。
军健们舒服地抹嘴抚胸,舒着气。
晁盖七个人在松林边朝这边看着。
杨志看见那七个人脸上好像有一种怪笑。他眨眨眼,再看,七个人影模糊了,清楚了,又模糊。
杨志脸色陡然变了,操起朴刀,站了起来,却头重脚轻,不能近步。
晁盖七个人指着杨志和军健们喊着:“倒啊!倒啊!”
十几个军健都摇晃着身子。谢都管和两个虞侯也站不稳,摇晃着。
“倒啊!倒哇!”
军健们一个个软了下去,不动了。两个虞侯和谢都管也倒了。
“倒哇!倒哇!”
杨志努力支撑着不让自己倒下去。他抬手指叫喊的晁盖一行人。
杨志:你,你们……
终于也倒了,怎么也挣扎不起。他歪过头,睁着眼,看着。
那七位枣贩子从对面的松林里推出七辆车子,推到了这边的松林里,搬掉车上的枣子,把军健们
的挑提卸掉,只把财物搬上车子,绑好,不慌不乱,又说又笑地推出松林,沿路而去。
杨志痛苦无力的闭上了眼睛……
……………………………………………………………………………………………………………
杨志睁开眼,坐了起来。他看见军健们和谢都管及两个虞侯软软地歪躺见着。口角满是涎水。
杨志坐爬起来,提着朴刀,在军健们之间走了几步。
旁边是那七位枣贩子扔下的麻袋,有的开了口,红干枣撒了出来。
黄泥岗下,杨志从岗上走下来,已沮丧到极点。
他想起了什么,站住了,从怀里摸出梁中书写给蔡太师的那封书信,看了一会儿,然后撕成碎片扬了。
纸花纷纷飘落。
失魂落魄的杨志朝山岗下走去。

2. 显着提升程序员身心健康和工作效率的装备有哪些

一把舒适的椅子,盆栽,关掉手机、QQ等的提示音。

环境设备
书架:很多东西都可以放进去,桌上能清爽很多
台灯:夜深人静的时候关上顶灯,打开台灯
白板:我还是习惯放下电脑,用笔去梳理自己的思维逻辑
加速度(一个电脑的有用程度和它里面装的软件数成反比)
给电脑换上SSD吧,你再也不用为了打开Photoshop而等待一分钟了,只需3秒!
给电脑加条内存吧,开虚拟机再也不用等待菊花了
IDE上哪些从来都不用的Plugin给Remove掉吧
Chrome上打开memory-redirect/你会惊奇的发现一个再简单不过的Extension也得占用几十M内存,长时间不用的扩展还是删掉吧
开机启动项赶紧T掉(Mac用户不在此列,我们都是几个月不关机的)
舒适的网络环境绝对是非常重要的,还在用小水管,赶紧去换成10M光纤吧,体验下网上冲浪的感觉!
多显示器绝壁是攻城师的不二利器啊!左边敲代码,右边预览、左边敲代码,右边LOG、左边敲代码,右边看电视
实在只有一个显示器也行啊,多建几个虚拟桌面切换
定制好的你的桌面图标(Mac Dock图标),把常用的提上去
使用Quicksilver、Alfred之类的软件能有效的提高操作效率
键盘的速度绝对比鼠标快,所以还是多记一记快捷键吧。Chrome下的Vimium和Firefox下面的Vimperator上手后对比下用数据操作的时间你会合不拢嘴的
专注
Coding的时候关掉手机提醒吧
邮件通知、QQ消息等简直是让人分散注意力的罪魁祸首
合理的挑选工作时间也很重要(当然得条件允许了,我是感觉每天晚上12点后的三个小时效率非常高,原谅我每天3点睡觉)
一杯茶或咖啡在快没精神的时候是很有作用的
你机箱是多少天没清理了,风扇的声音都快盖过拖拉机了

3. js面向对象的几种方式

JavaScript中对象的创建有以下几种方式:
(1)使用内置对象
(2)使用JSON符号
(3)自定义对象构造

一、使用内置对象

JavaScript可用的内置对象可分为两种:
1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;
2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。

我们所说的使用内置对象,是指通过JavaScript语言原生对象的构造方法,实例化出一个新的对象。如:

复制代码 代码如下:

var str = new String("实例初始化String");
var str1 = "直接赋值的String";
var func = new Function("x","alert(x)");//示例初始化func
var o = new Object();//示例初始化一个Object

二、使用JSON符号

(i)何谓JSON ?
JSON (JavaScript Object
Notation)即JavaScript对象命名,是一种轻量级的数据交换格式,易于阅读和编写,同时也易于及其解析和生成。它基于
《JavaScript Programming Language, Standard ECMA-262 3rd Edition -
December 1999》的一个子集。JSON是完全独立于语言的文本格式,因此成为数据交换的理想格式。

JSON作为
JavaScript的一个自己,同时ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、
ObjectiveCAML、Perl、PHP、python、Rebol、Ruby、Lua等一系列的语言都提供支持,使得JSON成为Ajax开发的
首选方案。

JSON有两种构建方式,一种是采用简单的“键/值对”的集合,在不同的语言中被理解为对象、记录、结构、字典、哈希表、有键列表,或者关联数组等,另一种采用有序的值列表,大部分语言把它理解为数组。

常用的创建方式是第一种,即采用“键/值对”集合的形式。在这种形式下,一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号),“
‘键/值' 对”之间使用“,”(逗号)分隔。

JSON具有以下特点:(1)简单格式化的数据交换;(2)易于人们的读写习惯;(3)易于机器的分析和运行。
在JavaScript中,JSON被理解为对象。通过字符串形式的JSON,数据可以很方便地解析成JavaScript独享,并进行数据的读取传递。通过JSON,在一定程度上客服了JavaScript对象无法作为参数系列化传递的问题。

1,简单的JSON

{name:"刘德华",age:"25",sex:"男"}

2,JSON值的类型

JSON的值可以是简单的数据类型,例如数字、浮点、字符等,也可以是数组及对象。例如以数组作为member键值的JSON:

{member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]}

{
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}

3,在JavaScript中使用JSON

JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或者工具包,JavaScript默认将JSON当做一个对象处理。

将对象传递给一个变量,例如:

复制代码 代码如下:

var somebooks = {
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}

JSON的每个“键”相当于对象的属性,例如访问book中的第一个条目,在JavaScript中,就可以简单地使用“somebooks.book[0].name”来获取“三国演义”这个值。

我们不但可以将一个JSON字符串转化为对象,反过来将一个对象“编译”为一个JSON字符串,以方便JavaScript中的对象的传输。例如:

复制代码 代码如下:

var Animals = new Object();
Animals.name = "dog";
Animals.sex = "Male";
Animals.age = "2";

Animals对象无法被序列化传输,将Animals对象转化为JSON字符串,也就是“{name:"dog",sex:"Male",age:"2"}”。这样,把该JSON字符串作为HTTP请求的一个参数传递,从而达到序列化传输Animals对象的目的。

(ii)JSON通过字符串形式来表达JavaScript的对象。如:

复制代码 代码如下:

var myObject = {nickname:"my girlfried",name:"big
pig"};

JSON
实际上充当了一种在JavaScript对象和字符串之间实现相互转换的协议。由于JSON的“外表”可以看成但村的字符串,因此JSON在
JavaScript的对象传输方面可以起到一定的作用。例如把对象strObject转换成字符串后进行传输,在达到目的地后通过eval方法将其还原
成对象:

复制代码 代码如下:

function test (o)
{
alert (o.name)
}
var strObject = '{nickname:"my girlfriend",name:"big pig"}';
test (eval_r("(" + strObject + ")"));

三、自定义对象构造

创建高级对象构造有两种方式:使用“this”关键字构造、使用原型prototype构造。如:

复制代码 代码如下:

//使用this关键字定义构造的上下文属性
function Girl()
{
this.name = "big pig";
this.age = 20;
this.standing;
this.bust;
this.waist;
this.hip;
}

//使用prototype
function Girl(){}
Girl.prototype.name = "big pig";
Girl.prototype.age = 20;
Girl.prototype.standing;
Girl.prototype.bust;
Girl.prototype.waist;
Girl.prototype.hip;
alert(new Girl().name);

上例中的两种定义在本质上没有区别,都是定义“Girl”对象的属性信息。“this”与“prototype”的区别主要在于属性访问的顺序。如:

复制代码 代码如下:

function Test()
{
this.text = function()
{
alert("defined by this");
}
}
Test.prototype.test = function()
{
alert("defined by prototype");
}
var _o = new Test();
_o.test();//输出“defined by this”

当访问对象的属性或者方法是,将按照搜索原型链prototype
chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。

“this”
与“prototype”定义的另一个不同点是属性的占用空间不同。使用“this”关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法
所需的空间,而使用“prototype”定义,由于“prototype”实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比
“this”节约资源。

4. django如何查询列表(djangovalue_list)

导读:很多朋友问到关于django如何查询列表的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

Django表关联对象及多表查询

首先建立Student,Dpartment,Course,Stu_info表

一对多表关系数据的添加:

1.第一种方式就是跟之前的一样,用传参的方法添加,需要注意的是外键的值必须是关联表中已经存在的值.

2.第二种方式是用的属性赋值的方式,因为我们在模型类有定义了一个department的属性,而这个属性的对象的类型必须是department表的类实例对象

表关联对象的访问:

Student的模型类中我们有定义department的属性,所以当我们去访问的时候,可以直接通过student.department的形式去找到某个学生的所属学院是哪个.

那么如果我们也希望在在访问某个学院的实现对象的学生的时候改怎么访问呢???

表关联对象的访问:

可以在定义时设置related_name参数来覆盖foo_set的名称.

clear()从关联的对象集中删除所有的对象

多表查询----跨关联关系的查询:

Django提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:

它还可以反向工作。若要引用一个“反向”的关系,只需要使用该模型的小写的名称。

pythondjango怎么把数据查询结果保存到一个list里面

1、新建一个JUPYTERNOTEBOOK文档。

2、定义一个LIST列表并且打印看看结果。list=[3,9,-7]print(list)。

3、为列表增加一个数字。list.append(10)print(list)。

4、字符串也是可以增加进去的。list.append("string123")print(list)。

5、列表里面更是可以含有其它列表。list.append([-3,-4])print(list)。

6、如果要删除最后一个列表的值,可以这样处理。list.pop()print(list)。

django查询1列。怎么查询一列,和selectnamefroma。一样

xxx.objects.get()例如查询Car对象的id为5的那列

Car.objects.get(id=5)值得注意的是,get()方法只能用于查一列的,如果返回结果是没有或者超过1条,都会报错,所以如果不确定的话,用Car.objects.filter(id=5)返回的列表,允许为空,如果只有一条,你取第一条就完了

python+django多表联合查询方法求教

先让我们回忆一下在第五章里的关于书本(book)的数据模型:1fromdjango.dbimportmodelsclassPublisher(models.Model):name=models.CharField(max_length=30)address=models.CharField(max_length=50)city=models.CharField(max_length=60)state_province=models.CharField(max_length=30)country=models.CharField(max_length=50)website=models.URLField()def__unicode__(self):returnself.nameclassAuthor(models.Model):first_name=models.CharField(max_length=30)last_name=models.CharField(max_length=40)email=models.EmailField()def__unicode__(self):returnu'%s%s'%(self.first_name,self.last_name)classBook(models.Model):title=models.CharField(max_length=100)authors=models.ManyToManyField(Author)publisher=models.ForeignKey(Publisher)publication_date=models.DateField()def__unicode__(self):returnself.title如我们在第5章的讲解,获取数据库对象的特定字段的值只需直接使用属性。例如,要确定ID为50的书本的标题,我们这样做:frommysite.books.modelsimportBookb=Book.objects.get(id=50)b.titleu'TheDjangoBook'但是,在之前有一件我们没提及到的是表现为ForeignKey或ManyToManyField的关联对象字段,它们的作用稍有不同。访问外键(ForeignKey)值当你获取一个ForeignKey字段时,你会得到相关的数据模型对象。例如:b=Book.objects.get(id=50)b.publisherb.publisher.websiteu''对于用``ForeignKey``来定义的关系来说,在关系的另一端也能反向的追溯回来,只不过由于不对称性的关系而稍有不同。通过一个``publisher``对象,直接获取books,用publisher.book_set.all(),如下:p=Publisher.objects.get(name='ApressPublishing')p.book_set.all()[,,]实际上,book_set只是一个QuerySet(参考第5章的介绍),所以它可以像QuerySet一样,能实现数据过滤和分切,例如:1p=Publisher.objects.get(name='ApressPublishing')p.book_set.filter(name__icontains='django')[,]属性名称book_set是由模型名称的小写(如book)加_set组成的。访问多对多值(Many-to-ManyValues)多对多和外键工作方式相同,只不过我们处理的是QuerySet而不是模型实例。例如,这里是如何查看书籍的作者:b=Book.objects.get(id=50)b.authors.all()[,]b.authors.filter(first_name='Adrian')[]b.authors.filter(first_name='Adam')[]反向查询也可以。要查看一个作者的所有书籍,使用author.book_set,就如这样:a=Author.objects.get(first_name='Adrian',last_name='Holovaty')a.book_set.all()[,]这里,就像使用ForeignKey字段一样,属性名book_set是在数据模型(model)名后追加_set。更改数据库模式(DatabaseSchema)3在我们在第5章介绍syncdb这个命令时,我们注意到syncdb仅仅创建数据库里还没有的表,它并不对你数据模型的修改进行同步,也不处理数据模型的删除。如果你新增或修改数据模型里的字段,或是删除了一个数据模型,你需要手动在数据库里进行相应的修改。这段将解释了具体怎么做:当处理模型修改的时候,将Django的数据库层的工作流程铭记于心是很重要的。如果模型包含一个未曾在数据库里建立的字段,Django会报出错信息。当你第一次用Django的数据库API请求表中不存在的字段时会导致错误(就是说,它会在运行时出错,而不是编译时)。3Django不关心数据库表中是否存在未在模型中定义的列。Django不关心数据库中是否存在未被模型表示的表格。1改变模型的模式架构意味着需要按照顺序更改Python代码和数据库。添加字段1当要向一个产品设置表(或者说是model)添加一个字段的时候,要使用的技巧是利用Django不关心表里是否包含model里所没有的列的特性。策略就是现在数据库里加入字段,然后同步Django的模型以包含新字段。3然而这里有一个鸡生蛋蛋生鸡的问题,由于要想了解新增列的SQL语句,你需要使用Django的manage.pysqlall命令进行查看,而这又需要字段已经在模型里存在了。(注意:你并不是非得使用与Django相同的SQL语句创建新的字段,但是这样做确实是一个好主意,它能让一切都保持同步。)3这个鸡-蛋的问题的解决方法是在开发者环境里而不是发布环境里实现这个变化。(你正使用的是测试/开发环境,对吧?)下面是具体的实施步骤。首先,进入开发环境(也就是说,不是在发布环境里):在你的模型里添加字段。运行manage.pysqlall[yourapp]来测试模型新的CREATETABLE语句。注意为新字段的列定义。开启你的数据库的交互命令界面(比如,psql或mysql,或者可以使用manage.pydbshell)。执行ALTERTABLE语句来添加新列。使用Python的manage.pyshell,通过导入模型和选中表单(例如,MyModel.objects.all()[:5])来验证新的字段是否被正确的添加,如果一切顺利,所有的语句都不会报错。3然后在你的产品服务器上再实施一遍这些步骤。启动数据库的交互界面。5执行在开发环境步骤中,第三步的ALTERTABLE语句。将新的字段加入到模型中。如果你使用了某种版本控制工具,并且在第一步中,已经提交了你在开发环境上的修改,现在,可以在生产环境中更新你的代码了(例如,如果你使用Subversion,执行svnupdate。重新启动Webserver,使修改生效。让我们实践下,比如添加一个num_pages字段到第五章中Book模型。首先,我们会把开发环境中的模型改成如下形式:classBook(models.Model):title=models.CharField(max_length=100)authors=models.ManyToManyField(Author)publisher=models.ForeignKey(Publisher)publication_date=models.DateField()**num_pages=models.IntegerField(blank=True,null=True)**def__unicode__(self):returnself.title

Django中复杂的查询

在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较。如果我们要对两个字段的值做比较,那该怎么做呢?

Django提供F()来做这样的比较。F()的实例可以在查询中引用字段,来比较同一个model实例中两个不同字段的值。

Django支持F()对象之间以及F()对象和常数之间的加减乘除和取模的操作。

filter()等方法中的关键字参数查询都是一起进行“AND”的。如果你需要执行更复杂的查询(例如OR语句),你可以使用Q对象。

fromdjango.db.modelsimportQ

Q(title__startswith='Py')

Q对象可以使用和|操作符组合起来。当一个操作符在两个Q对象上使用时,它产生一个新的Q对象。

查询名字叫水浒传或者价格大于100的书

你可以组合和|操作符以及使用括号进行分组来编写任意复杂的Q对象。同时,Q对象可以使用~操作符取反,这允许组合正常的查询和取反(NOT)查询:

查询函数可以混合使用Q对象和关键字参数。所有提供给查询函数的参数(关键字参数或Q对象)都将"AND”在一起。但是,如果出现Q对象,它必须位于所有关键字参数的前面。例如:

查询名字叫水浒传与价格大于100的书

django如何跨表查询

1、表的名称myapp_modelName,是根据模型中的元数据自动生成的,也可以覆写为别的名称

2、id字段是自动添加的

3、对于外键字段,Django会在字段名上添加"_id"来创建数据库中的列名

4、这个例子中的CREATETABLESQL语句使用PostgreSQL语法格式,要注意的是Django会根据settings中指定的数据库类型来使用相应的SQL语句。

5、定义好模型之后,你需要告诉Django_使用_这些模型。你要做的就是修改配置文件中的INSTALL_APPSZ中设置,在其中添加models.py所在应用的名称。

6、外键字段ForeignKey有一个null=True的设置(它允许外键接受空值NULL),你可以赋给它空值None。

结语:以上就是首席CTO笔记为大家整理的关于django如何查询列表的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

5. python 怎样竖列求和

这不是很简单么,首先这三个数据你要有个东西存放起来,比如用字典格式存放起来,然后把字典遍历,取key对应的值,将值累加起来就好了啊

阅读全文

与Python水浒传运行代码相关的资料

热点内容
如何把java编译回中文 浏览:773
天联软件服务器地址是什么 浏览:958
stc单片机加密 浏览:136
小程序地产广告源码 浏览:540
消费者信息加密私域 浏览:429
程序员开发团队可以怎么创业 浏览:925
设备共享服务器是什么意思 浏览:126
java符号类型 浏览:331
redis客户端java 浏览:214
javatn 浏览:278
应用宝哪里下载王卡免流量app 浏览:235
uv7代喷头加密与不加密 浏览:467
滚动指标源码查询 浏览:986
梦幻西游lua源码修改教程 浏览:937
androidphp环境 浏览:762
php前台页面 浏览:493
程序员hr怎么挽留 浏览:817
学习编程视频剪辑的书 浏览:170
安卓什么时候更新软件格式 浏览:978
三星920sc加密码 浏览:721