» »

Django programiranje

Django programiranje

davaman ::

Lep pozdrav vsem...ker nisem vešč programiranja z djangom bi lepo prosil da mi negdo pove kako začeti...za začetek vem in znam inštalirati python in django..vendar nikakor nevem kako začeti...kje pisati kodo, kaj odpreti da bom videl mojo delo, itd...

hvala za vso pomoč...

LP

Gandalfar ::

Django ima res hud tutorial:

https://docs.djangoproject.com/en/1.3/i...
in tudi free knjigo: http://www.djangobook.com/en/2.0/

Lahko pa v to temo postavis tudi kaksno bolj konkretno vprasanje in bomo pomagali.

FrEaKmAn ::

+1 Gandalfar

Za ravojni IDE pa priporočam PyCharm.. ti bo olajšal učenje...

marjan_h ::

Mene zanima, ko bereš podatke od uporabnika z POST, kaj daš v polje action:
<form action=?>


V view se pa prebere tako:

ime = request.POST.get('ime')

ragezor ::

V action das uri kam hoces postat.

Btw, django zna sam generirat forme.

marjan_h ::

Zanima me naslednja vrstica kode, v django ker ne vem kaj sploh naredi:
user = authenticate(username=usern, password=passw)


Uporablja se pri formih. Ali ni namen, da se pogleda v podatkovno bazo in preveri če mogoče obstaja user z password. Kaj sploh preveri ta ukaz?

Ker meni vrne None, pa ne vem zakaj. User in pass sta ista kot v bazi.

Hvala za pomoč.

FrEaKmAn ::

da, preveri če obstaja uporabnik s tem uporabniškim imenom in geslom v bazi. vrne uporabnika če obstaja, drugače none

kako veš da je pass isti? django uporablja hashing gesel, torej vnešeno geslo != geslo v bazi. dejansko je geslo v bazi == hash(vnešeno geslo)

marjan_h ::

Ali je res da je hashing kriv? Delal sem po tem tutorialu. Na strani je koda, ne omenja pa nič hashinga.

Jaz imam app (torej direktorij) ki se imenuje base. Znotraj tega je datoteka models.py in koda je takšna:

class User(models.Model):
     username = models.Charfield(max_length=100)
     password = models.Charfield(max_length=100)
     
     def __unicode__(self):
         return self.username


Znotraj tega so tudi druge tabele kot je BlogPosts itd...
Kako django ve v katero tabelo mora pogledati in preveriti, če se ujemajo podatki?

Hvala za odgovor.

ragezor ::

Django ma svojo tabelo za userje in ko ti authenticate() klices ti gre gledat v tisto njegovo tabelo.

Katero verzijo Djangota uporabljas? Pogooglaj kako kustomiziras Djangojovega Userja in ne ustvarjaj svoje tabele.

edit:
Ocitno ne delas po tutorialu, ker tam ustvarijo model UserProfile, ki ima User-ja za foreign key.

Zgodovina sprememb…

  • spremenil: ragezor ()

BigWhale ::

class User(models.Model):
     username = models.Charfield(max_length=100)
     password = models.Charfield(max_length=100)
     
     def __unicode__(self):
         return self.username


Tole shrani geslo v tabelo kot tekstovno polje. To ne bo nikoli delalo. Ce pa bo, bo pa delalo narobe, bo nevarno in nezanesljivo.

Ce delas po tutorialu in je tako v tutorialu, potem napisi avtorju tutoriala, da naj prehena delat s tutoriali, ti pa poisci kak drug tutorial. :)

Zgodovina sprememb…

  • spremenil: BigWhale ()

marjan_h ::

@ragezor

Moram imeti svoje tabele, ker imam več različnih uporabnikov. Kakor razumem je ta "User" vgrajen že v Django, in se ga poveže v svoje tabele. Ali kako drugače?

@BigWhale

Kako bi pa ti naredil?

ragezor ::

Kako to mislis vec razlicnih uporabnikov? Ti imas eno tabelo in noter shranjujes uporabnike. Seveda se ti uporabniki (vrstice v tabeli) razlikujejo.

Ce hoces uporabljati avtentikacijo, ki je ze vgrajena v django, moras uporabljati djangojev User. Lahko pa ga povezes z dodatnimi podatki (glej tutorial).

Pa za naslednja vprasanja lepo razlozi svoj miselni proces in kaj hoces doseci, ker ti je drugace zelo tezko pomagati.

marjan_h ::

Na strani se lahko logina več različnih uporabnikov, ki so shranjeni v različnih tabelah. Torej User ima svoj tabelo v bazi, potem je Salesman ima svojo tabelo itd... Zakaj ni vse shranjeno v eni tabeli? Zato ker ima vsak različne podatke, zato je tudi več tabel.

Kakor razumem ta "django User" povežeš s tabelo tako:
#Tukaj je User == Django User
user = models.OneToOneField(User)

ragezor ::

Ja, potem pa najdes User-ja glede na username/password. Ko mas pa tega User-ja pa lahko najdes tvojega Salesmana, ki mu User pripada.

marjan_h ::

Hmm, potem pravzprav ne rabim username charfield in password charfield. To vse vsebuje že Django User, in ko uporabim zgornji ukaz, dobim vse te fielde zraven, sam pa dodam še ostale.

BlackLight ::

Malce preizkušam django pa me zanima če uporabiš django-registration app ki je ze v osnovi veliko pripravljenega, kako potem kombiniraš če imaš še osnovni user model povezan do druge tabele kjer "extendaš" da model npr dodatne informacije za userja website itd. Narediš registration app da se ujema z templati itd? In potem tam notri na novo napišeš forme ali kako?

jype ::

BlackLight> Malce preizkušam django pa me zanima če uporabiš django-registration app ki je ze v osnovi veliko pripravljenega, kako potem kombiniraš če imaš še osnovni user model povezan do druge tabele kjer "extendaš" da model npr dodatne informacije za userja website itd. Narediš registration app da se ujema z templati itd? In potem tam notri na novo napišeš forme ali kako?

V zadnji različici lahko User model razširiš ali nadomestiš z drugim. V preteklih je bil ločen user profile model način, ki se ga je spodbujalo kot način za razširitev, ampak to je zdaj že zastarelo.

https://docs.djangoproject.com/en/1.9/t...

https://docs.djangoproject.com/en/1.4/t...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

[Python] Povezave

Oddelek: Programiranje
4344944 (891) d4vid
»

Učenje PHP?

Oddelek: Programiranje
161934 (1425) brodul
»

Django template language - trik

Oddelek: Programiranje
51255 (1068) dasf
»

python in postgresql (strani: 1 2 )

Oddelek: Programiranje
777554 (6455) ZaphodBB
»

PHP ASP

Oddelek: Izdelava spletišč
353051 (2376) MrBrdo

Več podobnih tem