【實戰演練】Python+Django網站開發系列03-Django初始配置與靜態Index頁面開發

前面已經將開發環境準備好了,能夠開始進行靜態網頁的開發。css


先介紹一下django的目錄與文件結構,有幾個文件須要重點掌握的:html

settings.py   #用來配置django項目的基本信息的,包括鏈接的數據庫的數據庫實例名,端口,用戶名密碼等。前端

urls.py          #用來記錄路由數據的,這個不是網絡專業的ip route路由的意思,是例如你訪問127.0.0.1:8000/index,後面的index路由到什麼函數來處理的意思。python

views.py       #用來編寫業務邏輯的,所謂業務邏輯,其實就是函數,上面的路由會根據urls調用views的函數mysql

models.py    #是用來建立數據庫表的,包括表名,字段,字段的數據類型等web

另外還有2個目錄須要掌握:sql

templates     #用來放置靜態頁面的數據庫

static            #用來放置css、js、img(圖片)等文件的django


初始化配置windows

項目初始化創建後,最主要的僅有settings.py與urls.py。

016.png

另外,因爲django是能夠支持模塊化開發的,所以在進行具體的業務邏輯開發前,須要建立app(至關於功能模塊)

django-admin startapp stumgr

自動建立了相關的app目錄,裏面models.py與views.py是最重要的。

models.py是用來規定數據庫表以及具體字段。

views.py是用來編寫具體的業務邏輯的。

017.png

另外,靜態頁面文件通常要求放置在templates目錄下,js、css等文件要求放置在static目錄下,這兩個目錄也須要手動建立。

建立後,django是沒法使用該兩個目錄的,因此還須要修改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',
   
'stumgr',
]

禁用CSRF跨站***阻止,在前面加#號。

MIDDLEWARE =[
#'django.middleware.csrf.CsrfViewMiddleware',
]

修改templates的目錄,由於windows系統問題,須要將/替換爲\\,才能正常工做。

TEMPLATES = [
   {
       'BACKEND': 'django.template.backends.django.DjangoTemplates',
       
'DIRS': [os.path.join(BASE_DIR, 'templates'.replace('\\','/'))]

修改數據庫配置,原爲

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.sqlite3',
       
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
   
}
}

修改成(按照實際修改)

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.mysql',
       
'NAME':'stumgr',
       
'HOST':'localhost',
       
'USER':'root',
       
'PASSWORD':'1qaz!QAZ',
       
'PORT':3306,
   
}

最後settings最底下增長static目錄配置

STATIC_URL = '/static/'
STATICFILES_DIRS=(
   os.path.join(BASE_DIR,'static'.replace('\\','/')),
)

點擊files->settings->能夠安裝擴展的包,因爲django須要與mysql數據庫交互,請點擊+,而後安裝pymysql

019.png

018.png

在terminal,運行,進行數據庫的初始化。

python manage.py makemigrations

而後會報錯,提示缺乏MySQL-python,因爲python2沒法安裝MySQL-python,須要安裝pymysql來替代。

修改school目錄下的__init__.py

import pymysql
pymysql.install_as_MySQLdb()

020.png

到數據庫建立stumgr數據庫

021.png

從新運行命令

python manage.py makemigrations
python manage.py migrate

提示數據庫表建立完成,查看數據庫,發現數據庫表已經自動建立成功。

022.png

023.png

在templates目錄下建立index.html文件,填寫」HelloWorld「

024.png

而後須要編寫views.py,import的地方,追加導入render_to_response,

建立函數index,定義函數須要執行什麼業務邏輯,暫時僅做頁面返回,使用return render_to_response,

後面的locals()的意思是,若是函數裏面有什麼參數,將全部的參數值返回到前端頁面。

from django.shortcuts import render,render_to_response

# Create your views here.
def index(request):
   return render_to_response('index.html',locals())

而後修改urls.py,在裏面添加index的路由記錄。

from stumgr.views import *

urlpatterns = [
   url(r'^admin/', admin.site.urls),
 
url(r'^index/', index),
]

runserver運行web服務。

python  manage.py runserver

打開瀏覽器訪問http://localhost:8080/index嘗試,若是可以成功訪問,則證實一切配置正常。

025.png

相關文章
相關標籤/搜索