Django 模板Template粗略使用
阿新 • • 發佈:2018-10-24
con render 使用 ack 渲染 then all 手機號 ken
Template模板配置步驟
- 在當前工作目錄創建templates文件夾
- 配置settings.py文件
MIDDLEWARE = [ ‘django.middleware.security.SecurityMiddleware‘, ‘django.contrib.sessions.middleware.SessionMiddleware‘, ‘django.middleware.common.CommonMiddleware‘, # ‘django.middleware.csrf.CsrfViewMiddleware‘, # 註釋這句話,不會報403錯誤 ‘django.contrib.auth.middleware.AuthenticationMiddleware‘, ‘django.contrib.messages.middleware.MessageMiddleware‘, ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘, ]
TEMPLATES = [ { ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘, ‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)], # 配置項目路徑,這句話意思是當前模板路徑為當前工程目錄下創建的templates文件夾,BASE_DIR settings.py中已經定義 ‘APP_DIRS‘: True, ‘OPTIONS‘: { ‘context_processors‘: [ ‘django.template.context_processors.debug‘, ‘django.template.context_processors.request‘, ‘django.contrib.auth.context_processors.auth‘, ‘django.contrib.messages.context_processors.messages‘, ], }, }, ]
模板使用步驟
(1). 在urls.py中添加一個新的url用於顯示數據。
(2). 創建相應的視圖函數
def all_stu(request):
if request.method == ‘GET‘:
stus = Student.objects.all()
return render(request,‘stus.html‘,{‘students‘:stus}) # 在頁面渲染,第一個參數為請求,第二參數為要顯示的頁面,第三個參數必須傳入字典
(3). 在templates目錄下新建名為stus的html文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <table border="1"> <thead> <th>姓名</th> <th>年齡</th> <th>操作</th> </thead> <tbody> {% for stu in students %} <!--for 叠代得到的學生對象集合--> <tr> <td>{{stu.s_name}}</td> <!--{{stus.s_name}}拿到學生姓名--> <td>{{stu.s_age}}</td> <!--{{stus.s_age}}拿到學生年齡--> <td> <a href="/add_info/?stu_id={{stu.id}}">添加擴展信息</a> <!--添加鏈接,為了給指定學生添加學生信息,stu_id={{stu.id}}是為了得到具體點擊的那個學生的id便於添加到數據庫--> </td> </tr> {% endfor %} <!--結束語法--> </tbody> </table> </body> </html>
(4). 在templates文件目錄下添加名為info的html頁
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post"> <!--post 表單-->
電話號碼:<input type="text" name="phone">
地址:<input type="text" name="address">
<input type="submit" value="提交">
</form>
</body>
</html>
(5) . 在視圖中添加提交更新到數據庫的視圖函數
def add_info(request):
# method 獲取請求HTTP方式
if request.method == ‘GET‘:
return render(request,‘info.html‘) # 點擊鏈接請求url後跳轉info頁
if request.method == ‘POST‘:
# 獲取頁面中提交的手機號碼和地址,並保存
phone = request.POST.get(‘phone‘)
address = request.POST.get(‘address‘) # request.POST.get得到表單提交的數據
stu_id = request.GET.get(‘stu_id‘) # request.GET.get得到請求url後的stu_id
StudentInfo.objects.create(phone=phone,address=address,stu_id=stu_id)
return HttpResponse(‘success‘)
上述幾步操作後,就可以完成與1個簡單的模板展示
Django 模板Template粗略使用