abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 5
včera 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
včera 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 25
včera 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 10
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 5
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 60
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 675 hlasů
 Komentářů: 61, poslední dnes 13:06
Rozcestník
Reklama

Dotaz: Python a opakovany vypis dat z databaze

14.2.2016 20:26 Tomis
Python a opakovany vypis dat z databaze
Přečteno: 912×
Dobry den, chtel bych ze zeptat jak spravne opakovane vypsat hodnoty nactene z databaze. Zde cast kodu:

kody_all = cur.execute(SELECT)
#kody_all = (('010',),('020',),('030',))

for kod in kody_all:
  print kod[0]

print " a jeste jednou....."

for kod in kody_all:
  print kod[0]

con.close()
Kdyz kody_all nactu z databaze, tak pri prvnim behu smycky FOR se vsechny udaje vypisou, ale pri behu te dalsi smycky se uz nevypise nic. Kdyz kody_all nastavim pomoci toho zakomentovaneho radku, tak vypsani probehne v obou smyckach.

Jedine co mi funguje je pred kazdou smyckou FOR pridat znova kody_all = cur.execute(SELECT) , ale to znamena, ze dojde k opakovanemu nacteni dat z DB? To mi neprijde zrovna spravne.....

Muzete mi prosim poradit, jak ty udaje z DB vypsat opakovane? Dekuji.

Řešení dotazu:


Odpovědi

14.2.2016 21:52 divbyzero | skóre: 6
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Dobry den, co si ulozit vysledek do mezipromenne?
kody_current = kody_all
14.2.2016 21:59 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Problém spočívá v tom, že proměnná kody_all není pole, ale iterovatelná strukrura, která se bohužel neumí "převinout na začátek".

Správně bys to měl překopírovat do nové struktury, která se už bude chovat dle tvých potřeb. Nejlépe do nějakého objektu nebo přinejhorším do pole.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Řešení 1× (Bystroushaak)
14.2.2016 22:10 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Teď na to koukám, zkus tohle:
kody_all = cur.execute(SELECT).fetchall()
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
14.2.2016 22:22 Tomis
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Jo, moc dekuji, tohle uz funguje. Muzes mi prosim jeste trochu naznacit, co se tim fetchall() zmenilo?
14.2.2016 22:26 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Ze zmíněné iterovatelné struktury (viz výše) se stalo obyčejné pole, resp. seznam.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
19.4.2016 05:25 eee
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
To neni dobre vysvetleni. Spravne vysvetleni je, ze execute vraci kurzor, ktery kazdym zavolanim vrati z db jeden radek. Volanim fetchall() primejeme kurzor vratit cely vysledek jako list radku.
15.2.2016 08:27 Filip Jirsák
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Ten váš kód postupně donačítá výsledky z databáze – bude tedy fungovat i pro hodně velké objemy dat, protože se vždy přenese jenom část výsledků. Na druhou stranu se ve výsledcích můžete pohybovat pořád jen dopředu, takže když je potřebujete vypsat vícekrát, musíte dotaz zavolat opakovaně v jedné transakci (a nastavit správnou úroveň izolace transakcí, aby vracel vždy stejné výsledky). Upravený kód dělá to, že nejprve načte všechny výsledky z databáze do paměti, takže je pak můžete procházet libovolně. Nevýhoda je, že se vše načte najednou do paměti, takže jste omezen velikostí dostupné paměti a víc výsledků takhle nezpracujete.
15.2.2016 09:19 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Pokud jsou data načítaná z databáze jen menšího rozsahu (řekněme < 1 MB), tak se o takové nevýhodě vůbec nemá smysl bavit. Pro většinu běžných případů tedy výhody kompletního načtení převažují.

Za nejlepší řešení však stále považuji použití načtených dat pouze 1×. V opačném případě mi v takové aplikaci "něco smrdí".
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15.2.2016 11:31 Filip Jirsák
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
O rozsahu dat nic nevíme. Pokud to budou stovky GB, nemá zase vůbec smysl bavit se o tom, že se to celé načte do paměti…
15.2.2016 12:14 Tomis
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Dobry den, databaze je sice velka (cca 100GB), ale ja nacitam pouze 3 sloupce z jedne tabulky. a nacitam vzdy jenom data z minuleho dne, takze se uz nijak nemeni. Tech zaznamu za den je kolem 5000. Takze ten fetchall() mi takto vyhovuje.

15.2.2016 15:53 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Pokud to budou stovky GB, nemá zase smysl bavit se o dvojitém načítání. Je nutné to načíst jednou a ihned zpracovat podobojí.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15.2.2016 21:26 Filip Jirsák
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Pokud to jde. Pokud bude potřeba to poslat jako soubor přes HTTP a v hlavičce bude hash toho souboru, nic jiného vám nezbyde. Jasně, jsou to extrémní příklady. Jde spíš o to, že „načíst všechno do paměti“ je jednoduché řešení pro jednoduché případy, které ale neškáluje. Proudové zpracování se hodí nejen pro velký objem dat, ale také umožní třeba paralelní zpracování (ať už využití více jader CPU na jednom stroji, nebo zpracování na více uzlech v cloudu).
15.2.2016 22:16 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Tady na fóru se řeší hlavně jednoduché příklady, u kterých to škálování chybět nebude.

99 % běžných případů vyřeší inženýři a to zbylé 1 % přenechají doktorům, aby se měli v čem rýpat a aby také něco dělali :-)

A ten velký soubor? Uložím ho do tempu, spočítám hash a obojí pošlu klientovi. Do databáze se podruhé hrabat nebudu, protože se jistě mezitím změnil její obsah a držet ji celou dobu pod krkem by také nemuselo být zrovna košér.

A když už jsme u těch velkých objemů dat, tak hash používám jako klíč k přístupu k takovým datům a proto bych ho klientovi jednoduše přibalil.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15.2.2016 12:04 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Python a opakovany vypis dat z databaze
Neznám sice Python, a ani nepíšete na jaké to má být databázi, ale třeba mysql v php má funkci mysql(i)_data_seek, pro sqlite sqlite_rewind
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.