去https://www.djangoproject.com/download/ 下載最新版的Django,而後解壓放到Anaconda\Lib\site-packages目錄下,而後cmd進入此目錄,輸入安裝命令:python
python setup.py install
安裝成功後,配置系統環境變量,將Anaconda\Lib\site-packages\Django-2.0.6添加到PATH中mysql
django-admin startproject mysite
生成的項目的結構爲:web
mysite/ # container for project manage.py # command-line utility mysite/ # actual Python package for project __init__.py # empty file, tells python that this directory considered as a python package settings.py # configuration for project urls.py # URL declaration for project wsgi.py # An entry-point for WSGI-compatible web server to serve project
python manage.py runserver python manage.py runserver 0:8000 # 0.0.0.0:8000的縮寫
運行項目的同時能夠配置IP和port,默認開啓8000端口sql
若是在運行的時候,發生utf8的編碼問題,多是計算機名字爲中文致使!!!數據庫
一個Django實例包含多個INSTALLED_APPS,它們也能夠在多個實例中使用。默認狀況下,會包含下面這些APPSdjango
包含這些經常使用的APPS會提供一些便利bash
一個project包含若干個app和配置信息,其中每一個app實現某個功能,而且能夠存在於多個project中session
python manage.py startapp polls
一旦建立好後,polls就會存在於manage.py同層目錄,而後來看下整個項目的結構oracle
mysite/ db.sqlite3 manage.py mysite/ __init__.py settings.py urls.py wsgi.py polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
自定義的APP的目錄下,有個apps.py文件,裏面有個config類,須要將這個類名添加到settings.py的INSTALLED_APPS中去,最後一個就是本身添加進去的app
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls.apps.PollsConfig', ]
urlpatterns=[ path(<URLPattern>, <function>), path(<URLPattern>, include(<other_URLPattern>)) ]
path(route, view, [**kwargs, name])
默認使用SQLite,若是要換,須要更改配置信息。
# 默認的 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
其中ENGINE要改成django.db.backends.postgresql/django.db.backends.mysql/django.db.backends.oracle
NAME是數據庫名字,若是不是sqlite3還須要本身添加USER,PASSWORD,HOST等配置信息,以下圖是一個mysql的配置樣例:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER':'root', 'PASSWORD':'root', 'HOST':'localhost', 'PORT':'3306', } }
每一個APPS都會使用若干個數據庫,咱們須要首先建立這些數據庫,使用下面的命令來建立:
python manage.py migrate
migrate命令將查看settings.py文件中全部的INSTALLED_APPS並建立他們所需的數據庫和表。
藉助元數據來定義數據庫佈局
class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')
在APP/models.py裏面建立類,每一個類都繼承於models.Model,類變量至關於數據庫的字段,因此和scrapy相似,Django提供了一個Field類,全部的字段都是Field的實例。好比CharField()將建立一個字符字段(char),DateTimeField()將建立一個datetime類型的字段
這裏建立的每一個類變量,不單單將成爲數據庫的字段名/列名,也將在python代碼中供使用
建立和修改models都須要建立migration(它存儲的是你對models的改動)
python manage.py makemigrations <app_name>
這個命令會在app目錄下的migrations/001_initial.py中建立model對應的migration
而後咱們須要將這個migration應用到數據庫中去
python manage.py migrate
也能夠經過下面的命令來獲得model對應的sql代碼
python manage.py sqlmigrate <app_name> 0001
python manage.py createsuperuser