
Github Source: https://github.com/Ganiks/django
C:/Python27/Lib/site-packages>python --version
Python 2.7.5
setuptools下載腳本:https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py下載:https://www.djangoPRoject.com/download/1.7/tarball/
解壓縮后進入目錄:
python setup.py install... ...... ...測試下:
E:/>pythonPython 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import django;>>> print django.get_version();1.7>>>python C:/Python27/Lib/site-packages/Django-1.7-py2.7.egg/django/bin/django-admin.py startproject mysiteganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ls -ltotal 1-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.pydrwxr-xr-x    1 ganiks.l Administ        0 Sep 11 14:13 mysiteganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ls -l mysite/total 2-rw-r--r--    1 ganiks.l Administ        0 Sep 11 13:42 __init__.py-rw-r--r--    1 ganiks.l Administ     2042 Sep 11 13:42 settings.py-rw-r--r--    1 ganiks.l Administ      275 Sep 11 13:42 urls.py-rw-r--r--    1 ganiks.l Administ      387 Sep 11 13:42 wsgi.pyganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ./manage.py runserverPerforming system checks...System check identified no issues (0 silenced).September 11, 2014 - 14:22:59Django version 1.7, using settings 'mysite.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CTRL-BREAK.[11/Sep/2014 14:23:03] "GET / HTTP/1.1" 200 1759
ganiks.liu@MAMIS-GAIKS-LIU /E/mysite/mysite$ ../manage.py startapp blogganiks.liu@MAMIS-GAIKS-LIU /E/mysite/mysite$ gvim settings.pyganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ls -ltotal 19-rw-r--r--    1 ganiks.l Administ    36864 Sep 11 15:04 db.sqlite3-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.py-rw-r--r--    1 ganiks.l Administ      312 Sep 11 14:42 models.pydrwxr-xr-x    1 ganiks.l Administ        0 Sep 11 15:04 mysite注意,這里是在mysite/mysite目錄下執(zhí)行的創(chuàng)建app操作,所以blog是mysite.blog
編輯mysite/settings.py, 添加mysite.blog
# application definitionINSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'mysite.blog',)Django 采用
INSTALL_APPS來決定系統(tǒng)不同部分的配置,包括自動化的admin應用以及測試框架
from django.db import models# Create your models here.#django.db.models.Model is the core partof the ORM system of Djangoclass BlogPost(models.Model):	# Django will add an auto-increment, unique id	title = models.CharField(max_length=150)	body = models.TextField()	timestamp = models.DataTimeField()SQLite非常適合做測試,甚至可以部署在沒有大量并發(fā)寫入的情況下。因為SQLite使用本地文件系統(tǒng)作為存儲介質(zhì)并且用原生的文件系統(tǒng)權(quán)限來做訪問限制。
像主機、端口、用戶和密碼這些統(tǒng)統(tǒng)不需要了。
ganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ./manage.py syncdbOperations to perform:  Apply all migrations: admin, contenttypes, auth, sessionsRunning migrations:  No migrations to apply.  Your models have changes that are not yet reflected in a migration, and so won't be applied.  Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.   You have installed Django's auth system, and don't have any superusers defined.Would you like to create one now? (yes/no): yesUsername (leave blank to use 'ganiks.liu'): ganiksEmail address: ganiks@QQ.comPassWord:Password (again):Superuser created successfully.ganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ manage.py makemigrationsMigrations for 'blog':  0001_initial.py:    - Create model BlogPostganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ls -ltotal 19-rw-r--r--    1 ganiks.l Administ    36864 Sep 11 15:07 db.sqlite3-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.pydrwxr-xr-x    1 ganiks.l Administ        0 Sep 11 15:04 mysiteganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ manage.py migrate perations to perform:  Apply all migrations: admin, blog, contenttypes, auth, sessionsRunning migrations:  Applying blog.0001_initial... OK  ganiks.liu@MAMIS-GAIKS-LIU /E/mysite$ ls -ltotal 19-rw-r--r--    1 ganiks.l Administ    37888 Sep 11 15:09 db.sqlite3-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.pydrwxr-xr-x    1 ganiks.l Administ        0 Sep 11 15:04 mysite當執(zhí)行
syncdb命令時, Django會查找INSTALLED_APPS中的每一個models.py文件。
并為每一個都創(chuàng)建一個數(shù)據(jù)庫表(多對多關系會有例外)
另外剛剛的過程中還創(chuàng)建了一個超級用戶,這個在后面加入Django的自動admin時很方便。
You have installed Django's auth system, and don't have any superusers defined.Would you like to create one now? (yes/no): yesUsername (leave blank to use 'ganiks.liu'): ganiksEmail address: ganiks@qq.comPassword:Password (again):Superuser created successfully.自動化的后臺應用程序admin可以說是Django“皇冠上的明珠”, 任何對為Web應用創(chuàng)建簡單的CURD接口感到厭倦的人來說,這是極大的福音,類似Yii的Gii。
由于自動admin不是Django的必要組件,因此你先要在
settings.py文件中指定,就跟你剛剛指定mysite.blog一樣。
但是呢,其實我這次用的 Django1.7 版本中默認的已經(jīng)啟用了如下app
(我現(xiàn)在看的教程是老版本2008年的,這樣可以發(fā)現(xiàn)好多Django的進化過程~)
INSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'mysite.blog',)還有 urls.py也都配置好了admin路由
from django.conf.urls import patterns, include, urlfrom django.contrib import adminurlpatterns = patterns('',    # Examples:    # url(r'^$', 'mysite.views.home', name='home'),    # url(r'^blog/', include('blog.urls')),    url(r'^admin/', include(admin.site.urls)),)最后,你的應用程序要告訴Django要在admin窗口中顯示哪一個model可以供編輯;要做到這一點,只要想默認的admin站點注冊你的app model即可【添加1,添加2】
from django.db import models#添加1from django.contrib import admin# Create your models here.#django.db.models.Model is the core partof the ORM system of Djangoclass BlogPost(models.Model):	# Django will add an auto-increment, unique id	title = models.CharField(max_length=150)	body = models.TextField()	timestamp = models.DateTimeField()#添加2admin.site.register(BlogPost)
admin.site.register注冊你的model類models.py有錯誤settings.py中的INSTALLED_APPS中添加app現(xiàn)在blog app已經(jīng)創(chuàng)建完成,如何完善,參看下一篇。
新聞熱點
疑難解答