<map version="0.7.1">
<node TEXT="Django &#x57fa;&#x4e8e;&#x6a21;&#x578b;&#x7684;Web&#x5e94;&#x7528;&#x4f53;&#x9a8c;">
<edge STYLE="linear"/>
<icon BUILTIN="licq"/>
<node TEXT="Django&#x7b80;&#x4ecb;" FOLDED="true" POSITION="right">
<node TEXT="&#x662f;&#x4ec0;&#x4e48;" FOLDED="true">
<node TEXT="Django &#x662f;&#x4e00;&#x4e2a;&#x57fa;&#x4e8e;MVC&#x6a21;&#x5f0f;&#x7684;Web&#x5f00;&#x53d1;&#x6846;&#x67b6;"/>
</node>
<node TEXT="&#x63d0;&#x4f9b;&#x4e86;&#x4ec0;&#x4e48;">
<node TEXT="ORM - Python&#x7c7b;&#x5230;&#x5173;&#x7cfb;&#x578b;&#x6570;&#x636e;&#x5e93;&#x7684;&#x6620;&#x5c04;"/>
<node TEXT="&#x9875;&#x9762;&#x6a21;&#x7248;"/>
<node TEXT="&#x57fa;&#x4e8e;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x7684;URL&#x6620;&#x5c04;"/>
<node TEXT="&#x8ba4;&#x8bc1;&#x4e0e;&#x8bbf;&#x95ee;&#x63a7;&#x5236;"/>
<node TEXT="Admin&#x754c;&#x9762;"/>
</node>
<node TEXT="&#x98ce;&#x683c;">
<node TEXT="MVC&#x6a21;&#x5f0f;"/>
<node TEXT="&#x901a;&#x8fc7;&#x547d;&#x4ee4;&#x65b9;&#x5f0f;&#x751f;&#x6210;&#x5e94;&#x7528;&#x6846;&#x67b6;"/>
<node TEXT="Dont Repeat Yourself -- DRY"/>
<node TEXT="pluggable" FOLDED="true">
<node TEXT="Django apps are &quot;pluggable&quot;: You can use an app in multiple projects, and you can distribute apps, because they don&apos;t have to be tied to a given Django installation.  "/>
</node>
<node TEXT="&#x5185;&#x5bb9;&#x7ba1;&#x7406;&#x9875;&#x9762;&#x4e0e;&#x516c;&#x4f17;&#x663e;&#x793a;&#x9875;&#x9762;"/>
<node TEXT="&#x9690;&#x55bb;">
<node TEXT=" &#x6570;&#x636e;&#x5e93;&#x64cd;&#x4f5c;" FOLDED="true">
<node TEXT="lookup types:">
<node TEXT="exact"/>
<node TEXT="lgt"/>
<node TEXT="...."/>
</node>
</node>
</node>
</node>
<node TEXT="&#x5f00;&#x53d1;&#x73af;&#x5883;&#x7684;&#x51c6;&#x5907;" FOLDED="true">
<node TEXT="&#x5b89;&#x88c5;&#x914d;&#x7f6e;">
<node TEXT="mod_python"/>
<node TEXT="Apache  &#x7ebf;&#x7a0b;&#x7f16;&#x8bd1;"/>
<node TEXT="mysql"/>
<node TEXT="django  (httpd.conf)"/>
<node TEXT="&#x9ebb;&#x70e6;&#x7684;&#x8def;&#x5f84;&#x95ee;&#x9898;"/>
</node>
</node>
</node>
<node TEXT="&#x5f00;&#x53d1;&#x4e00;&#x4e2a;Project" FOLDED="true" POSITION="right">
<node TEXT="&#x521b;&#x5efa;&#x5e94;&#x7528;" FOLDED="true">
<node TEXT="django-admin.py startproject myproject">
<icon BUILTIN="idea"/>
<node TEXT="&#x76ee;&#x5f55;&#x7ed3;&#x6784;"/>
</node>
</node>
<node TEXT="&#x8bbe;&#x7f6e;&#x6570;&#x636e;&#x5e93;" FOLDED="true">
<node TEXT="&#x652f;&#x6301;&#x7684;&#x6570;&#x636e;&#x5e93;" FOLDED="true">
<node TEXT="MySQL"/>
<node TEXT="Sqlite"/>
<node TEXT="postgresql"/>
</node>
<node TEXT="&#x7f16;&#x8f91; myproject/settings/main.py"/>
<node TEXT="django-admin.py init --settings=myproject.settings.main "/>
</node>
<node TEXT="App">
<node TEXT="&#x521b;&#x5efa;App  django-admin.py startapp AppName" FOLDED="true">
<node TEXT="&#x76ee;&#x5f55;&#x7ed3;&#x6784;">
<icon BUILTIN="idea"/>
</node>
</node>
<node TEXT="&#x5b9a;&#x4e49;model" FOLDED="true">
<icon BUILTIN="messagebox_warning"/>
<node TEXT="&#x4f7f;&#x7528;python class&#x8868;&#x793a;&#x6570;&#x636e;&#x8868;"/>
<node TEXT="meta.Model  subclass"/>
<node TEXT="__repr__"/>
<node TEXT="&#x5b9e;&#x4f8b;">
<icon BUILTIN="idea"/>
</node>
<node TEXT="&#x6570;&#x636e;&#x7c7b;&#x578b;">
<node TEXT="meta.CharField"/>
<node TEXT="meta.IntegerField"/>
<node TEXT="meta.ForeignKey"/>
<node TEXT="...."/>
<node TEXT=" many-to-ones, many-to-manys and one-to-ones. "/>
</node>
</node>
<node TEXT="Activating models" FOLDED="true">
<node TEXT="Install App">
<node TEXT="myproject/settings/main.py   INSTALLED_APPS "/>
</node>
<node TEXT="django-admin.py sql polls "/>
<node TEXT="django-admin.py install polls "/>
<node TEXT="&#x4f7f;&#x7528;&#x6570;&#x636e;&#x5e93;API">
<icon BUILTIN="idea"/>
</node>
</node>
<node TEXT="Admin &#x9875;&#x9762;" FOLDED="true">
<node TEXT="&#x521b;&#x5efa;&#x4e00;&#x4e2a;&#x7528;&#x6237;" FOLDED="true">
<node TEXT="django-admin.py createsuperuser"/>
</node>
<node TEXT="&#x542f;&#x52a8;&#x5f00;&#x53d1;&#x670d;&#x52a1;&#x5668;" FOLDED="true">
<node TEXT="django-admin.py runserver --settings=&quot;myproject.settings.admin&quot; "/>
</node>
<node TEXT="&#x589e;&#x52a0;App admin &#x63a5;&#x53e3;" FOLDED="true">
<node TEXT="inner META ">
<node TEXT="class Poll(meta.Model):     # ...     class META:         admin = meta.Admin() ">
<icon BUILTIN="idea"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node TEXT="&#x5728;Model &#x7c7b;&#x4e2d;&#x589e;&#x52a0;"/>
<node TEXT="&#x5b9a;&#x5236;Admin&#x663e;&#x793a;"/>
</node>
</node>
<node TEXT="View" FOLDED="true">
<icon BUILTIN="messagebox_warning"/>
<node TEXT="URL -&gt; Python function -&gt; Template"/>
<node TEXT="URL">
<node TEXT="&#x8bbe;&#x7f6e;&#x6587;&#x4ef6; myproject/settings/urls/main.py"/>
<node TEXT="ROOT_URLCONF = &apos;myproject.settings.urls.main&apos; "/>
<node TEXT="&#x683c;&#x5f0f;">
<node TEXT="(regular expression, Python callback function [, optional dictionary]) "/>
</node>
<node TEXT="Plug &amp; Play URL"/>
</node>
<node TEXT="Template">
<icon BUILTIN="messagebox_warning"/>
<node TEXT="http://www.djangoproject.com/documentation/templates/">
<icon BUILTIN="wizard"/>
</node>
<node TEXT="Your view can read records from a database, or not. It can use a template system such as Django&apos;s -- or a third-party Python template system -- or not. It can generate a PDF file, output XML, create a ZIP file on the fly, anything you want, using whatever Python libraries you want.  "/>
<node TEXT="&#x6807;&#x8bb0;&#xff0c;&#x89c1; pdf">
<icon BUILTIN="forward"/>
</node>
</node>
<node TEXT="Generic View"/>
<node TEXT="Exception">
<node TEXT="HTTP404"/>
<node TEXT="....."/>
</node>
<node TEXT="HTTP&#x76f8;&#x5173;&#x5bf9;&#x8c61;">
<node TEXT="HTTPRequest"/>
<node TEXT="HTTPResponse"/>
<node TEXT="HTTPRedirect"/>
</node>
</node>
</node>
</node>
<node TEXT=" &#x8bc4;&#x8bba;" FOLDED="true" POSITION="right">
<node TEXT="&#x4f18;&#x70b9;"/>
<node TEXT="&#x4e0d;&#x8db3;">
<node TEXT="&#x5168;&#x624b;&#x5de5;&#xff0c;&#x8981;&#x6c42;&#x5bf9;&#x6574;&#x4e2a;&#x90fd;&#x4e86;&#x89e3;&#x624d;&#x80fd;&#x5b8c;&#x6210;&#x4e00;&#x4e2a;app&#x3002;&#x800c;&#x4e14;&#x5206;&#x6563;&#x5728;&#x4e0d;&#x540c;&#x7684;&#x914d;&#x7f6e;&#x6587;&#x4ef6;&#x4e2d;"/>
<node TEXT="&#x53ef;&#x89c6;&#x5316;&#x5f00;&#x53d1;&#x5de5;&#x5177;"/>
</node>
</node>
<node TEXT="&#x6280;&#x672f;&#x4e13;&#x9898;" FOLDED="true" POSITION="right">
<node TEXT="URL dispatcher" FOLDED="true">
<node TEXT="We&apos;re fanatics about good URLs">
<icon BUILTIN="licq"/>
</node>
<node TEXT="urlpatterns">
<node TEXT="&#x524d;&#x7f6e;pattern"/>
<node TEXT="Include"/>
<node TEXT="extra options">
<node TEXT="r&apos;^/articles/(?P&lt;year&gt;\d{4})/$&apos;"/>
<node TEXT="&#x7b2c;&#x4e09;&#x4e2a;&#x53c2;&#x6570;&#xff0c;&#x5b57;&#x5178;"/>
</node>
</node>
<node TEXT="URL&#x5e94;&#x8be5;&#x4fdd;&#x6301;&#x4e0d;&#x53d8;&#xff0c;&#x65e5;&#x540e;&#x5176;&#x4ed6;&#x6280;&#x672f;&#x7684;&#x8003;&#x8651;"/>
</node>
<node TEXT="Template"/>
<node TEXT="Middle Ware"/>
<node TEXT="Generic Views"/>
<node TEXT="Database API"/>
<node TEXT="&#x7528;&#x6237;&#x8ba4;&#x8bc1;&#x8bbf;&#x95ee;&#x7ba1;&#x7406;"/>
</node>
</node>
</map>
