【Django1】基本知識,URL對映,檢視渲染,模板應用
python版本3.5,django版本1.10
1 新建專案
django-admin.py startproject website2
2 啟動伺服器,檢視是否正常
manage.py runserver
3 進入工程website2一級資料夾下新建app
python manage.py startapp demo
4 將新建立的app加入工程中
修改 website2/website2/settings.py的INSTALL_APPS,將app名稱加入該元組中。
5 編寫app檢視檔案
在/demo/views.py檔案中增加函式index,render為渲染函式
from django.shortcuts import render
# Create your views here.
def index(request):
pageTitle = '首頁'
return render(request, 'demo/index.html', {'strTemp':pageTitle})
render第三個引數是views.py向html傳遞的內容,預設是字典格式,{'strTemp':pageTitle}中strTemp是html中變數名,pageTitle則是該變數的值。
傳遞list時,只需令pageTitle = [‘as’, ‘df’, ‘gh’,‘jk’]
然後在html中讀取即可
{% for i in strTemp%}
{{ i }}
{% endfor %}
詳細見http://www.ziqiangxuetang.com/django/django-template2.html
6 編寫html檔案
<!DOCTYPE html> <html> <head> <title>{{strTemp}}</title> </head> <body> {{strTemp}} </body> </html>
用 {{ 變數}}直接得到變數的值,用 {% %}編寫迴圈/判斷等語句
檔案目錄如下
website2
├── demo
│ ├── __pycache__
│ ├── migrations
│ ├── templates
│ │ └── demo
│ │ ├── index.html
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
├── db.sqlite3
└── website2
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
7 URL對映,將網址對應到views.py檔案
修改/website2/website2/urls檔案
from django.conf.urls import url
from django.contrib import admin
from demo import views as demo_views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', demo_views.index, name='index'),
]
8 執行伺服器
下面在上文的基礎上,做一個網頁加法器
============================================================================================
============================================================================================
修改index.html
<!DOCTYPE html>
<html>
<head>
<title>網頁加法器</title>
</head>
<body>
<form action="/add/" method="get">
a: <input type="text" name="num1"> <br>
b: <input type="text" name="num2"> <br>
<input type="submit" value="提交">
</form>
結果:{{sum}}
</body>
</html>
修改檢視檔案views.py
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, 'demo/index.html')
def add(request):
num1 = request.GET['num1']
num2 = request.GET['num2']
sum = int(num1)+int(num2)
return render(request, 'demo/index.html', {'sum':sum})
增加URL對映
from django.conf.urls import url
from django.contrib import admin
from demo import views as demo_views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', demo_views.index, name='index'),
url(r'^add/', demo_views.add, name='add'),
]
結果如下: