Bežný denník HTML zobrazenie. Zobrazenia Prihláste sa a odhláste sa. Vytvorte hlavnú stránku
Môžete dokonca počuť o šablónach dizajnu a dokonca flip tieto nádherné knihy:
- E. Gamma, R. Helm, R. Johnson, J. Wlissidess "berie objektovo orientovaný dizajn. Návrhové vzory »;
- M. Fowler "Architektúra firemných softvérových aplikácií".
Predložený článok bude užitočný predovšetkým nováčikom. V každom prípade dúfam, že za pár hodín môžete získať predstavu o implementácii modelu MVC, ktorý leží v srdci všetkých moderných webových rámcov, a tiež dostať "jedlo" pre ďalšiu reflexiu " ako na to". Na konci článku, výber užitočných odkazov, ktoré tiež pomôžu zistiť, čo je webový rámec pozostávajúci (okrem MVC) a ako fungujú.
Nachádza sa PHP programátori pravdepodobne nájsť niečo nové v tomto článku pre seba, ale ich pripomienky a pripomienky k hlavnému textu by boli veľmi mimochodom! Pretože Bez teórie je prax nemožná, a bez praxe je teória zbytočná, bude to najprv trochu teória, a potom sa obrátime na prax. Ak ste už oboznámení s konceptom MVC, môžete preskočiť sekciu s teóriou a okamžite ísť do praxe.
1. teória
Šablóna MVC opisuje jednoduchý spôsob, ako vytvoriť aplikačnú štruktúru, ktorej účelom je obchodná logika od užívateľského rozhrania. Výsledkom je, že aplikácia je jednoduchšia ako zmenšená, je testovaná, sprevádzaná a samozrejme implementovaná.Zvážte koncepčný diagram šablóny MVC (podľa môjho názoru - to je najúspešnejšia schéma tých, ktoré som videl):
V architektúre MVC model poskytuje údaje a obchodné logické pravidlá, prezentácia je zodpovedná za užívateľské rozhranie a regulátor poskytuje interakciu medzi modelom a reprezentáciou.
Typická sekvencia aplikácie MVC môže byť opísaná nasledovne:
- Keď príde používateľ na webový prostriedok, inicializačný skript vytvorí inštanciu aplikácie a spustí ho vykonať.
Zobrazí sa vzhľad, povedzte hlavnú stránku stránky. - Aplikácia prijíma žiadosť užívateľa a určuje požadovaný kontrolér a činnosť. V prípade hlavnej stránky sa vykoná predvolená akcia ( index).
- Aplikácia vytvára inštanciu regulátora a spustí metódu akcie,
v ktorom, napríklad, obsahuje modelové hovory, ktoré čítajú informácie z databázy. - Potom akcia generuje prezentáciu s údajmi získanými z modelu a zobrazí výsledok pre používateľa.
Model by nemal s užívateľom priamo komunikovať. Všetky premenné súvisiace s požiadavkou používateľa musia byť spracované v regulátore.
Model by nemal generovať HTML alebo iný displejový kód, ktorý sa môže líšiť v závislosti od potrieb používateľa. Takýto kód by mal byť spracovaný v druhoch.
Rovnaký model môže byť napríklad model autentifikácie používateľa použiť v používateľovi av správnej časti aplikácie. V tomto prípade môžete urobiť všeobecný kód v samostatnej triede a zdedená z neho, určovanie v špecifických metódach dedičov.
vyhliadka - Používa sa na špecifikáciu externého zobrazenia údajov získaných z regulátora a modelu.
Typy obsahujú značku HTML a malé kódy PHP vložky do obtoku, formátovania a zobrazenia údajov.
Nevykonávajte priamo do databázy. To by malo urobiť modely.
Nepracujte s údajmi získanými od požiadavky používateľa. Túto úlohu musí vykonať regulátor.
Môže priamo pristupovať k vlastnostiam a metódam ovládača alebo modelov na získanie hotových dát.
Typy sú zvyčajne oddelené spoločnou šablónou obsahujúcou značkou, ktorá je spoločná pre všetky strany (napríklad uzáver a suterén) a časť šablóny, ktorá sa používa na zobrazenie údajov z výstupu modelu alebo zobrazovania formulárov zadávania údajov.
Regulátor - Spojenie spojovacích modelov, typov a iných komponentov v pracovnej aplikácii. Regulátor je zodpovedný za zaobchádzanie s požiadavkami používateľa. Regulátor by nemal obsahovať sql dotazy. Je lepšie ich udržať v modeloch. Regulátor by nemal obsahovať HTML a iné značenie. Stojí to za to druhy.
V dobre navrhnutej aplikácii MVC sú regulátory zvyčajne veľmi tenké a obsahujú len niekoľko desiatok čiar kódu. Čo si nemôžete rozprávať o hlúpe regulátoroch tuku (SFC) v CMS Joomla. Logika regulátora je dosť typická a jeho veľká časť je vyrobená v základných triedach.
Modely, naopak, veľmi hrubé a obsahujú väčšinu kódu spojeného s spracovaním údajov, pretože Štruktúra dát a obchodná logika obsiahnutá v nich sú zvyčajne celkom špecifické pre konkrétnu aplikáciu.
1.1. Predný regulátor a regulátor stránky
Vo väčšine prípadov sa používateľská interakcia s webovou aplikáciou prejde cez odkazy podľa odkazu. Pozrite sa teraz na panel s adresou prehliadača - na tomto odkaz ste dostali tento text. Pre iné odkazy, napríklad umiestnené vpravo na tejto stránke, dostanete iný obsah. Odkaz teda predstavuje špecifickú webovú aplikáciu.Dúfam, že ste si už všimli, že rôzne stránky môžu byť dokonalé rôzne formáty pre budovanie adresného reťazca. Každý formát môže zobraziť architektúru webovej aplikácie. Hoci to nie je vždy prípad, ale vo väčšine prípadov je to zjavná skutočnosť.
Zvážte dve možnosti pre panel s adresou, ktorý zobrazuje určitý text a užívateľský profil.
Prvá možnosť:
- www.example.com/article.php?id\u003d3
- www.example.com/user.php?id\u003d4.
Druhá možnosť:
- www.example.com/index.php?artical\u003d3
- www.example.com/index.php?user\u003d4
Prístup s mnohými interakčnými bodmi môžete sledovať na fórach s PHPBB Engine. Zobrazenie fóra sa vyskytuje skriptom viewForum.php., Zobraziť tému prostredníctvom viewtopic.php. atď. Druhý prístup, s prístupom cez jeden súbor fyzického skriptu, možno pozorovať v mojom obľúbenom CMS Modx, kde prechádzajú všetky odvolania index.php..
Tieto dva prístupy sú úplne iné. Prvá je charakteristická pre šablónu ovládača stránky (ovládač strany) a druhý prístup je implementovaný vzorom regulátora dotazu (predný regulátor). Regulátor stránky je dobre používaný pre stránky s pomerne jednoduchou logikou. Ovládač požiadaviek kombinuje všetky akcie na spracovanie žiadostí na jednom mieste, čo mu dáva ďalšie funkcie, vďaka ktorým môžete implementovať zložitejšie úlohy, než zvyčajne vyriešené kontrolórom stránky. Nebudem ísť do detailov o implementácii regulátora stránky a poviem len, že regulátor dotazu bude vyvinuté v praktickej časti (niektoré podobnosti).
1.2. URL smerovanie
Smerovanie URL umožňuje nakonfigurovať aplikáciu pre prijímanie požiadaviek na adresu URL, ktoré nespĺňajú skutočné súbory aplikácií, ako aj používanie CNC, ktoré sú sémanticky významné pre používateľov a sú preferované pre optimalizáciu pre vyhľadávače.Napríklad pre obvyklú stránku, ktorá zobrazuje formulár spätnej väzby, adresa URL by mohla vyzerať takto:
http://www.example.com/contacts.php?action\u003dfeedback
Približný spracovateľský kód v tomto prípade:
prepínač ($ _GET ["ACTION"] (prípad "O": vyžadujú_once (ďalej len "o .php"); // Page "O nás" Prestávka; Prípad "Kontakty": vyžadujú_once ("Contacts.php"); // Stránka "Kontakty" Prestávka; Prípad "Spätná väzba": vyžadujú_once ("Feedback.php"); // Page "Spätná väzba" Prestávka; Predvolené: vyžadujú_once (ďalej len "strana 404.php"); // strana "404" prestávka; )
Myslím, že to skoro všetci urobili.
Pomocou smerovacieho motora URL môžete nakonfigurovať žiadosť o prijímanie takýchto žiadostí na rovnaké informácie:
http://www.example.com/contacts/feedback
Kontakty sú regulátor a spätná väzba je metóda regulátora kontaktov, ktorá predstavuje formulár spätnej väzby atď. V tejto otázke sa vrátime v praktickej časti.
Stojí tiež za to, že mnohé routery webových rámcov umožňujú vytvoriť ľubovoľné trasy URL (uveďte, čo každá časť URL) a pravidiel ich spracovania.
Teraz máme dostatočné teoretické vedomosti, aby sme mohli ísť do praxe.
2. prax
Ak chcete začať, vytvorte nasledujúcu štruktúru súborov a priečinkov:Pri pohľade dopredu budem hovoriť, že základný priečinok uloží základný model, pohľad a regulátor.
Ich potomkovia budú uložené v riaditeľoch regulátorov, modelov a názorov. Spis index.php. Toto je bod v priebehu žiadosti. Spis bootstrap.php. Spustí sa na prevzatie aplikácie pripojením všetkých potrebných modulov atď.
Pôjdeme postupne; Otvorte súbor index.php a vyplňte ho nasledujúcim kódom:
ini_set ("Display_Errors", 1); Vyžadujú_once "aplikácia / bootstrap.php";
Nemali by tu byť žiadne otázky.
Ďalej sa okamžite prejdeme do Falu bootstrap.php.:
vyžadujú_once "jadro / model.php"; Vyžadujú_once "jadro / view.php"; Vyžadujú_once "jadro / controller.php"; Vyžadujú_once "core / route.php"; Trasa :: Start (); // Spustite smerovač
Prvé tri riadky budú pripojené doteraz neexistujúce súbory jadra. Posledné riadky zapojte do súboru s triedou smerovača a spustite ho na zavolanie metódy statického štartu.
2.1. Implementácia routeru URL
Zatiaľ odmietnem z implementácie modelu MVC a bude trvať mrachrutizáciu. Prvý SH je, že musíme urobiť, zapíšte si nasledujúci kód .htaccess.:RewriteEngine na RewriteCond% (požiadavka_Filename)! -F Rewitecond% (Request_Filename)! -D RewriteRule.
Tento kód presmeruje spracovanie všetkých stránok index.php.Čo potrebujeme. Pamätajte si v prvej časti. Hovorili sme o prednom regulátore?!
Smerovanie budeme umiestnené v samostatnom súbore route.php. V adresári Core. V tomto súbore popisujeme triedu trasy, ktorá spustí metódy regulátorov, čo zase vytvorí pohľad na stránky.
Obsah súboru route.php
trieda trasy ( Statické. Štart funkcie () ( // regulátor a predvolená akcia $ Controller_name \u003d "main"; $ Akcie_name \u003d "index"; $ Trasy \u003d explodovať ("/", $ _server ["Request_uri"]); // Získajte názov regulátora Ak (! Prázdne ($ trasy)) ($ controller_name \u003d $ trasy;) // Získajte názov akcie Ak (! prázdne ($ trasy)) ($ akcie_name \u003d $ trasy;) // Pridať predpony $ model_name \u003d "model_". $ controller_name; $ Controller_name \u003d "Controller_". $ Controller_name; $ Akcie_name \u003d "akcia_". $ Akcie_name; // puzdro súboru s triedou triedy (modelový súbor nemusí byť) $ model_file \u003d strtolower ($ model_name). "PHP"; $ Mode_path \u003d "aplikácia / modely /". $ Model_file; Ak (súbor_exists ($ model_path)) (zahŕňajú "aplikácie / modely /". $ Model_file;) // puzdro súboru s triedou regulátora $ Controller_file \u003d strtolower ($ controller_name). "PHP"; $ Controller_path \u003d "Application / Controllers /". $ Controller_file; Ak (File_Existi ($ Controller_path)) (zahŕňajú "Aplikácia / Controllers /". $ Controller_file;) inak ( / * Bolo by to správne hodiť výnimku, ale na zjednodušenie okamžite vykonať presmerovanie na stránku 404 * / Trasa :: errorPage404 (); ) // Vytvorte regulátor $ Controller \u003d Nový $ Controller_Name; $ Akcie \u003d $ akcie_name; Ak (Metod_existy ($ Controller, $ Action)) // Zavolajte regulátor $ Controller -\u003e $ akcie (); ) Inak ( // To by bolo múdrejšie hodiť výnimku Trasa :: errorPage404 (); )) funkcia ERRECTMAGE404 () () () ( $ host \u003d "http: //". $ _ server ["http_host"]. "/"; Hlavička ("http / 1.1 404 nebol nájdený"); Hlavička ("Stav: 404 nebol nájdený"); Hlavička ("Umiestnenie:". $ Hostiteľ. "404"); ))
Poznamenávam, že v triede je implementovaná veľmi zjednodušená logika (napriek objektu Surround) a môže mať dokonca aj bezpečnostné problémy. Bolo to trvalé, pretože Písanie plnohodnotnej triedy smerovania si zaslúži aspoň samostatný článok. Zvážte hlavné body ...
V elementom globálneho poľa $ _server ["request_uri"] obsahuje úplnú adresu, pre ktorú sa používateľ adresoval.
Napríklad: príklad.ru/contacts/feedback
Pomocou funkcie explodovať. Uskutočňuje sa oddelenie adries. V dôsledku toho získame názov regulátora pre príklad uvedený vyššie, je to regulátor. kontakty. a názov akcie, v našom prípade - spätná väzba.
Ďalej je pripojený modelový súbor (model môže byť chýbajúci) a súbor regulátora, ak existujú a nakoniec sa vytvoria, inštancia regulátora je vytvorená a akcia sa opäť nazýva akcia, ak bola opísaná v triede kontroléra .
Pri prepínaní, napríklad na:
example.com/portfolio.
alebo
example.com/portfolio/index
router vykonáva nasledovné:
- pripojte súbor model_portfolio.php z priečinka modelov obsahujúcich triedu model_port folio;
- pripojte súbor Controller_Portfolio.PHP z priečinka regulátorov, ktorý obsahuje triedu Controller_Portfolio;
- vytvorte inštanciu triedy Controller_Portfolio a spôsobí, že predvolená akcia - Action_index opísaná v ňom.
example.com/UFO.
ktorý ho prenesie na stránku "404":
example.com/404.
To isté sa stane, ak sa užívateľ otočí k akcii, ktorý nie je opísaný v regulátore.
2.2. Návrat k implementácii MVC
Otočíme sa na priečinok CORE a pridajte tri ďalšie súbory do súboru Route.php: model.php, view.php a controller.phpDovoľte mi pripomenúť, že budú obsahovať základné triedy, ktorých písanie začneme teraz.
Obsah súboru model.php.
model triedy ( Verejnosť funkcia get_data () () (
}
}
Trieda triedy obsahuje jedinú metódu odberu vzoriek údajov, ktorá sa prekrýva v triedach potomkov. Keď vytvárame triedy potomkov, všetko bude jasnejšie.
Obsah súboru view.php.
zobrazenie triedy (
// verejné $ template_view; // Tu môžete zadať všeobecný pohľad na predvolené nastavenie.
funkcia generovať ( $ Content_view, $ template_view, $ data \u003d null)
{
/ * Ak (Is_array ($ data)) (// transformujeme prvky poľa do extrakčných premenných ($ dát);) * / Zahŕňajú "aplikácie / zobrazenia /". $ Template_view; ))
Nie je ťažké uhádnuť, že metóda vygenerovať Navrhnuté tak, aby vytvorili typ. Nasledujúce parametre sa prenášajú:
- $ Content_file - Typy obsahu stránky odrážajúce;
- $ template_file - spoločná šablóna pre všetky stránky;
- $ Data - pole obsahujúce prvky obsahu stránky. Zvyčajne naplnené v modeli.
zobrazenie konkrétneho obsahu stránky.
V našom prípade bude všeobecná šablóna obsahovať hlavičku, menu, bočný panel a päty a obsah stránky bude obsiahnutý v samostatnom formulári. Opäť sa to zjednodušuje.
Obsah súboru controller.php.
regulátor triedy ( Verejný model $; Verejný pohľad $; funkcia __construct () () $ THIS -\u003e Zobraziť \u003d Nový pohľad (); ))
Metóda akcie_index. - Toto je akcia spôsobená štandardom, budeme ho zablokovať pri implementácii tried potomkov.
2.3. Implementácia tried potomkov modelu a regulátora, vytvorenie zobrazenia
Teraz najzaujímavejšie začína! Naša webová stránka Obchodná karta bude pozostávať z nasledujúcich stránok:- hlavný
- Služby
- Portfólio
- Kontakty
- Rovnako ako - strana "404"
Súbor oddelene vybraný na predchádzajúcom obrázku. template_view.php. - Toto je šablóna obsahujúca celkovú značku pre všetky strany. V najjednoduchšom prípade by mohol vyzerať takto:
<hTML LANG \u003d "RU"\u003e
<hlava\u003e
<meta Charset \u003d "UTF- 8"\u003e <názov\u003ehlavnýnázov\u003e
hlava\u003e
<telo\u003e
$ Content_VIEW; ?\u003e telo\u003e
hTML\u003e
Ak chcete zobraziť miesto prezentatívneho zobrazenia, šablóna CSS sa prekrýva a integruje ju do našej stránky zmenou štruktúry HTML Markup a pripojte súbory CSS a Javascript:
<link Rel \u003d "Styles" Type \u003d "Text / CSS" Href \u003d "/ CSS / Style.css" /\u003e
<skript src \u003d "/ js / jquery-1.6.2.js" TYP \u003d "text / javascript"\u003eskript\u003e
Na konci článku, v časti "Výsledok" odkaz na úložisko githubu s projektom, ktorý bol vykonaný na integráciu jednoduchej šablóny.
2.3.1. Vytvorte hlavnú stránku
Začnime s regulátorom controller_main.php.Tu je jeho kód:class Controller_main rozširuje regulátor ( funkcia Action_index () $ THIS -\u003e View-\u003e Generovať ("main_view.php", "template_view.php"); ))
V metóde vygenerovať Inštancia triedy zobrazenia je prenášaná názvami spoločných súborov šablón a typu obsahu stránky.
Okrem indexu v regulátore, samozrejme, môžu byť obsiahnuté iné opatrenia.
Súbor so spoločným zobrazením sme považovali za skôr. Zvážte súbor obsahu main_view.php.:
<h1\u003eVitajte!h1\u003e
<p\u003e
<iMG SRC \u003d "/ Images / Office-Small.jpg" ALIGN \u003d "Vľavo"\u003e
<href \u003d "/"\u003eTím ololosh.a\u003e - Tím prvotriednych špecialistov vo vývoji webových stránok s dlhoročnými skúsenosťami zozbieraním mexických masky, bronzových a kamenných sochy z Indie a Ceylon, Bas-Reliéfy a sochy vytvorené majstrov Rovníkovej Afriky pre päť až šesť rokov .. .p\u003e
Obsahuje jednoduchú markup bez akýchkoľvek hovorov PHP.
Ak chcete zobraziť hlavnú stránku, môžete použiť v jednej z nasledujúcich adries:
- metódy knižníc, ktoré implementujú údaje o abstice. Napríklad metódy knižnice hrušky MDB2;
- metódy orm;
- metódy práce s Nosql;
- a atď. Pre jednoduchosť tu nebudeme používať požiadavky SQL alebo ORM operátori. Namiesto toho sme chytiť skutočné údaje a okamžite vrátime výsledné pole.
- Controller_Login, v ktorom sa vytvorí formulár s formulárom na zadanie prihlasovania a hesla, po vyplnení postupu autentifikácie a ak je to úspešné, používateľ je presmerovaný na admin.
- CONTORLER_ADMIN s indexovou akciou, v ktorom sa skontroluje, ak bol užívateľ predtým povolený na stránke ako administrátor (ak bol, zobrazí sa typ administrátora) a vykurovanie cvičenia na vykurovanie.
- spring-Security-Web 4.2.3.Rerease: Spring-Security-Web.
- spring-Security-Config 4.2.3.Rerease: Spring-Security-Config.
- spring WebMVC 4.3.9.Release: Spring Web MVC.
- javax.servlet-API 3.1.0 Java servlet API
- JDK 1.8.
- Maven 3.3.9.
- Login_redirect_url: Správy, čo URL presmerovanie používateľa po prihlásení do systému.
- Login_url : URL presmerovať používateľa na vstup (napríklad pomocou dekorácie login_required.)
- Logout_url : URL pre presmerovanie používateľa
- Ak chcete zvýrazniť aktuálnu sekciu v menu pomocou CSS. Tiež zobrazí používateľské meno a odkaz na prihlásenie, ak používateľ prešiel autentifikáciou, alebo odkaz na prihlásenie.
Otvorené v prehliadači http://127.0.0.1:8000/account/login/. Musíte vidieť vstupný prúd. Zadajte platné prihlasovacie meno a heslo. Uvidíte nasledovné:
Môžete vidieť, že časť My Dashboard je zvýraznená CSS, ako má triedu vybraný.. Keďže užívateľ prešiel autentifikáciou, používateľské meno sa zobrazí na pravej strane hlavičky. Kliknite na odkaz Odhlásiť sa.. Uvidíte nasledujúcu stránku:
Na tejto stránke môžete vidieť, že užívateľ vyšiel zo systému, a preto sa ponuka webových stránok už nezobrazuje. Odkaz na pravej strane Heder Prihlásiť sa.
Ak vidíte stránku odhlásenia z lokality Administrácia DZHANGO, a nie vlastné systémové výstupné stránky, skontrolujte nastavenia nainštalovaných_Apps a uistite sa, že django.contrib.admin. je po Účet. Obe šablóny sú v tej istej relatívnej ceste a nakladač šablóny DZHANGO použije prvý nájdený.
Django prichádza s množstvom zabudovaných zdrojov pre najbežnejšie prípady používania webovej aplikácie. Aplikácia registrácie je veľmi dobrým príkladom a dobrá vec je, že funkcie môžu byť použité mimo-of-the-box.
S aplikáciou Registrácia DJANGO môžete mať výhody nasledujúcich funkcií:
- Prihlásiť sa.
- Odhlásiť sa.
- Prihlásiť Se.
- Resetovanie hesla.
V tomto tutoriáli sa zameriame do funkcií prihlasovania a odhlásenia. Pre registráciu a resetovanie hesla skontrolujte nižšie uvedené tutoriály:
Začíname.
Predtým, ako začneme, urobíme isha v nainštalovaných_Apps a autentifikáciu Middlelled_Apps a autentifikácia Middleware správne nakonfigurovaný v nastaveniach Middleware_Classes.
Obaja sú už nakonfigurované, keď spustíte nový projekt DJANGO pomocou príkazu StartProject. Takže ak ste neodstránili počiatočné konfigurácie, mali by ste byť nastavené.
V prípade, že spustíte nový projekt len \u200b\u200bna to, aby ste nasledovali tento návod, vytvorte používateľa pomocou príkazového riadka, takže môžeme otestovať stránky prihlasovacieho a odhlásiť.
$ Python manage.py CreateSuperuserNa konci tohto článku budem poskytnúť zdrojový kód príkladu s minimálnou konfiguráciou.
Nakonfigurujte trasy URL
Prvý import DJANGO.CONTRIB.AUTH.VIEWS modul a pridajte adresu URL pre zobrazenie prihlásenia a odhlásenia:
z django.conf.urls import url z django.contrib import admin od django.contrib.auth importovať zobrazenia ako auth_views urlpatterns \u003d [adresa URL (R "^ Login / $", AUTH_VIEWS. Prihlásiť sa, názov \u003d "prihlásenie"), URL ( R "^ logout / $", auth_views. Odhlásiť, meno \u003d "Odhlásiť"), URL (R "^ admin /", admin. Stránky. URL),]Vytvorte prihlasovaciu šablónu
V predvolenom nastavení, django.contrib.atth.Views.login View sa pokúsi poskytnúť registráciu / login.html šablónu. Takže základná konfigurácia by vytvorila priečinok s názvom Registry a umiestnite šablónu login.html vo vnútri.
Nasleduje minimálna prihlasovacia šablóna:
(% Rozširuje "base.html"%) (% bloku%) prihlásenie (% endblock%) (% bloku%)
Prihlásiť sa.
(% endblock%)Tento jednoduchý príklad už overuje používateľské meno a heslo a správne overte používateľa.
Prispôsobenie prihlasovacieho zobrazenia
Existuje niekoľko parametrov, ktoré môžete prejsť na prihlasovacie zobrazenie, aby ste sa prispôsobili vášmu projektu. Ak chcete napríklad uložiť svoje prihlasovacie šablóny niekde inde, než môže prejsť názov šablóny ako parameter:
URL (R "^ login / $", auth_views. Prihlásiť sa, ("template_name": "jadro / login.html"), meno \u003d "prihlásenie"),Môžete tiež prejsť vlastným autentifikačným formulárom pomocou parametrov Autentication_form, Incase ste implementovali vlastný užívateľský model.
Teraz je veľmi dôležitá konfigurácia vykoná v súbore setting.py, čo je URL DJANGO presmerovať užívateľa po úspešnej autentifikácii.
Vnútri settings.py súbor Pridať:
Login_redirect_url \u003d "Domov"Hodnota môže byť kartónová adresa URL alebo Názov URL. Predvolená hodnota pre login_redirect_url je / účty / profil /.
Je tiež dôležité poznamenať, že DJANGO sa pokúsi presmerovať používateľa na nasledujúci Get Param.
Nastavenie zobrazenia odhlásenia
Po zápisu DJANGO.CONTRIB.AUTH.VIEWS.LOGOUT View, Django urobí registráciu / logged_out.html šablóny. Podobným spôsobom, ako sme urobili v prihlasovacom pohľade, môžete prejsť inú šablónu ako tak:
URL (R "^ logout / $", auth_views. Odhlásiť, ("template_name": "logged_out.html"), názov \u003d "Odhlásiť"),Zvyčajne dávam prednosť používaniu parametra NEXT_PAGE a presmerovať buď na domovskú stránku môjho projektu alebo na prihlasovaciu stránku, keď dáva zmysel.
Modelový súbor model_portfolio.php. V priečinku modelov modelov. Tu je jeho obsah:
trieda model_portfolio rozširuje model ( Verejnosť funkcia get_data () () ( Return Array (pole ("ROK" \u003d\u003e "2012", "miesto" \u003d\u003e "http://dunkenkelbeer.ru", "Popis" \u003d\u003e "Dunkel Tmave pivo propagačné miesto z nemeckého výrobcu Löwenbraü vyrobeného v Ruskovom pivovarskej spoločnosti" môže Ibev ".), Array ("Rok" \u003d\u003e "2012", "lokalita" \u003d\u003e "http://zopomobile.ru", "Popis" \u003d\u003e "Ruský jazykový katalóg čínskych telefónov ZOPO na základe systému Android OS a príslušenstvo k nim."), // ROBIŤ); ))
Trieda regulátora modelu je obsiahnutá v súbore. controller_portfolio.php.Tu je jeho kód:
trieda Controller_Portfolio rozširuje regulátor (
funkcia __construct () () $ this -\u003e model \u003d nový model_portfolio (); $ THIS -\u003e Zobraziť \u003d Nový pohľad (); ) funkcia Action_index () $ Data \u003d $ this -\u003e model-\u003e get_data (); $ THIS -\u003e View-\u003e Generovať ("portfolio_view.php", "template_view.php", $ data); ))
V premennej Údaje. Pole vrátené metódou get_data.ktoré sme považovali za staršie.
Ďalej sa táto premenná prenáša ako parameter metódy. vygenerovaťktorý je tiež prenášaný: názov súboru so spoločným šablónom a názvom súboru obsahujúceho zobrazenie obsahu stránok.
Zobraziť obsah obsahu je v súbore portfólio_view.php..
Portfólio
Ročník | Projekt | Popis | , "$ Row [" Rok "]." | "$ Row [" miesto "]." | , "$ Row [" Popis "]." | " ; }