Pokazywanie postów oznaczonych etykietą baza danych. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą baza danych. Pokaż wszystkie posty

22 kwietnia 2009

Linki codzienne 2009-04-22

Po dłuższej przerwie, kolejny odcinek cyklu z linkami (http://piotrbla.blogspot.com/2009/02/linki-codzienne-2009-02-18_18.html):

http://www.ridelust.com/top-10-everyday-things-people-do-to-ruin-their-cars/ - Jak szanować swój samochód, część uwag oczywista, ale niektóre odkrywcze (przynajmniej dla mnie),

http://sqlmusings.wordpress.com/2008/10/04/free-sql-server-ebooksresources/ - kilka naprawdę dobrych, a do tego darmowych książek na tematy związane z SQLServer,

http://blogs.msdn.com/rjacobs/archive/2008/10/07/clean-that-project.aspx - Dzisiaj oddajemy co cesarskie, cesarzowi - czyli do MS. Prosty programik, który "przeczyści" katalog z projektem pisanym w Visual Studio .NET (usuwa przede wszystkim zbędne katalogi bin i obj). Jeśli ktoś sobie takiego programiku jeszcze nie napisał, to polecam. Szczególnie przydatne przy udostępnianiu projektów znajomym,

http://larswilhelmsen.com/2008/10/14/pimp-my-visual-studio-2008/ - Jak już pisać o rozwiązaniach od MS, to na całego. Jak odpicować sobie visual studio, szczególnie polecam: Resharper i AnkhSVN (i to niezależnie od wersji VS.NET), w bonusie mała lista skrótów,

http://www.hanselman.com/blog/ScottHanselmans2007UltimateDeveloperAndPowerUsersToolListForWindows.aspx - się dzisiaj zrobiło okienkowo-programistycznie, potężny zestaw narzędzi pod Windows, głównie dla programistów, ale Power USer też coś dla siebie znajdzie.

Dzisiejsze plusy:
http://taoofbackup.com - jak robić backup, żeby zrobić go dobrze (wprawdzie na koniec okazuje się, że to trochę reklama, ale naprawdę przedstawione są ważne zasady),

http://projecteuler.net/ - wspaniały zbiór zagadek matematycznych, od w miarę prostych, do wymagających, można potraktować jako dobry materiał do nauki programowania.
Reblog this post [with Zemanta]

07 maja 2007

Zaczynam z Django 3 - baza danych

Zaczynam z Django 3

Jako, że mam już wcześniej przygotowaną bazę danych, to warto byłoby z niej skorzystać. Do tego służy znalezione dopiero w 17 rozdziale DB python mysite/manage.py inspectdb, warto sobie przejrzeć co się produkuje na ekran, a potem w najprostszy sposób zapisać to do pliku z modelem: ./manage.py inspectdb > mbegin/models.py
(DB: python mysite/manage.py inspectdb > mysite/myapp/models.py). Generowane jest coś w tym stylu:


class Categorie(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(maxlength=600)
description = models.TextField(blank=True)
class Meta:
db_table = 'categories'

Ponieważ tabele miały nazwy przystosowane do innego frameworka, więc ich nazwy są w liczbie mnogiej. Wygląda na to, że Django korzysta z prostej zasady, odejmij od liczby mnogiej 's' i masz liczbę pojedynczą. Nie zawsze się to sprawdza, w DB piszą, żeby przejrzeć i oczyścić wygenerowany model, z pewnością to później uczynię, zgodnie z zasadami podanymi we wspomnianym rozdziale 17. Druga zastanawiająca rzecz, to wartość maxlength (w bazie pola są varchar(200) a w modelu 600), trzeba będzie doczytać o sposobie kodowania znaków. Niestety bezpośrednio w DB nic na ten temat nie piszą.
Żeby sprawdzić, czy model działa można skorzystać z ./manage.py shell. Jeżeli wcześniej zainstalowaliśmy sobie IPythona, to mamy w tej chwili całkiem sympatyczne środowisko pracy z bazą danych, a właściwie z jej modelem. Śmiem przypuszczać, że będzie to też dobre miejsce do np. uruchamiania unit testów. Żeby skorzystać z modelu jakiejś tabeli, starczy wpisać from project.app.models import nazwa_modelu czyli na przykładfrom mdjango.mbegin.models import Categorie, a później już można Categorie.objects.values() (wartości z rekordów), albo Categorie.objects.count() (liczba rekordów). Kolejny duży plus dla Django, można sprawdzić od razu jak działa model, zanim go użyjemy w aplikacji. Na razie phpmyadmina użyłem tylko do sprawdzenia, czy model się zgadza, większość potrzebnych operacji można teraz z poziomu powłoki wykonać, mając pewność, że jest się podłączonym do właściwej bazy itp.