一、使用virtualenvwrapper
或pipenv
建立一個django
的虛擬環境,並安裝依賴包css
二、使用命令建立一個項目html
django-admin startproject [項目名字]
複製代碼
django
中項目文件的配置這步驟不使用也能夠,看我的,本人喜歡將所有的
app
放在一個目錄下,使用第三方的app
放在一個目錄下python
一、項目中建立一個文件夾apps
mysql
二、項目中建立一個文件夾extra_apps
git
三、根據下圖方式將上面兩個建立的文件夾變成根目錄sql
四、在項目的settings.py
中添加配置信息mongodb
import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
複製代碼
五、使用命令建立app
,並直接拖到apps
文件夾下shell
python manage.py startapp [app名字]
複製代碼
六、同理若是是git
上下載的第三方源代碼就放到extra_apps
文件夾下數據庫
url
的關聯在django
中有兩種模式來寫視圖django
FBV
模式)CBV
模式),本人更喜歡使用類的方式來建立視圖下面介紹使用CBV
模式來實現視圖
一、建立一個book
的app
而且在settings.py
中註冊
二、將book
拖到apps
文件夾下
三、在book
的app
目錄下建立一個urls.py
的文件,用於存放當前視圖所有的url
四、在視圖類中建立幾個類
from django.http import HttpResponse
from django.views import View
class BookView(View):
""" 圖書主頁視圖 """
def dispatch(self, request, *args, **kwargs):
# dispatch這個函數能夠不寫,查看django源碼就是從這個函數開始的
result = super().dispatch(request, *args, **kwargs)
return result
def get(self, request, *args, **kwargs):
return HttpResponse('圖書首頁')
def post(self, request, *args, **kwargs):
pass
class BookDetailView(View):
""" 圖書詳情視圖 """
def get(self, request, *args, **kwargs):
# http://localhost:8000/book/1/?name=hello
print(request.GET.get('name', None))
print(args)
# 能夠獲取到url上定義的參數
print(kwargs)
return HttpResponse('圖書詳情')
def post(self, request, *args, **kwargs):
pass
複製代碼
五、在本app
下的urls.py
中定義url
信息
from django.urls import path
from . import views
app_name = 'book'
urlpatterns = [
path('', views.BookView.as_view(), name='book_index'),
path('<int:book_id>/', views.BookDetailView.as_view(), name='book_detail')
]
複製代碼
六、在主路由中引入當前app
的urls.py
文件
from django.urls import path, include
urlpatterns = [
path('', include('home.urls', namespace='home')),
path('book/', include('book.urls', namespace='book'))
]
複製代碼
在
settings.py
中配置(以上海時間爲配置)大概在109行
TIME_ZONE = 'Asia/Shanghai' # 上海時區
USE_TZ = True
複製代碼
admin
中顯示)在
settings.py
中配置
LANGUAGE_CODE = 'zh-hans' # 中文支持,django1.8之後支持;1.8之前是zh-cn
複製代碼
一、默認數據庫是使用sqlite
二、若是要使用mysql
數據庫
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 數據庫引擎
'NAME': 'djangotest', #數據庫名稱
'USER': 'root', # 連接數據庫的用戶名
'PASSWORD': 'root', # 連接數據庫的密碼
'HOST': '127.0.0.1', # mysql服務器的域名和ip地址
'PORT': 3306, # mysql的一個端口號,默認是3306
}
}
複製代碼
三、若是你是使用pymysql
鏈接工具必需要在站點__init__.py
的文件配置
import pymysql
pymysql.install_as_MySQLdb()
複製代碼
四、使用mongodb
數據庫
DATABASES = {
'default': {
'ENGINE': None,
}
}
from mongoengine import connect
connect('數據庫名')
複製代碼
若是是使用命令方式建立的項目,不會本身建立
templates
的文件夾,須要手動建立
一、手動建立一個文件夾templates
二、在settings.py
的TEMPLATES
下面配置模板的使用路徑
'DIRS': [os.path.join(BASE_DIR,'templates' )]
複製代碼
三、補充說明'APP_DIRS': True,
的認識
templates
文件夾下沒找到模板會在已經安裝的app
下繼續查找模板,若是沒有找到就報錯,有就渲染到頁面在開發過程當中可能會使用到的
css
文件、js
文件、img
文件咱們統一歸到靜態文件中
一、加載靜態的也是一個app
,查看app
中是否加載該組件
INSTALLED_APPS = [
...
'django.contrib.staticfiles',
]
複製代碼
二、說明(靜態文件夾的命名是根據settings.py
中STATIC_URL
同樣就能夠)
STATIC_URL = '/static/'
複製代碼
三、在settings.py
中配置靜態文件地址
STATICFILES_DIRS = (
'static',
)
複製代碼
四、將static
變成django
內置標籤(這樣就不須要在每一個html
頁面頭部{% load staticfiles %}
)
# 在settings.py文件中配置
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
],
'builtins': ['django.templatetags.static']
},
},
]
複製代碼