使用anaconda+Pycharm搭建Django项目-模板使用和前后端交互(二)

105 阅读1分钟

接着使用anaconda+Pycharm搭建Django项目(一),我们本章主要用来熟悉django的模板操作及前后端交互 。

一、模板使用

1.创建template和index.html

在第一章代码的基础上,在项目目录下创建templates文件夹,并且创建index.html。目录如下:

image.png index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <div>
        <h1 style="color: red">Hello Web Project!</h1>
    </div>
</body>
</html>

2.修改项目模板路径(setting.py)

修改setting.py,添加:

'DIRS': [os.path.join(BASE_DIR, 'templates')],

image.png

3.修改views,使用render函数返回页面

from django.shortcuts import render

def index(request):
    return render(request, 'index.html')

4.启动项目

python manage.py runserver

可以看到,返回的结果,是按照我们给的index.html模板展示的。

image.png

二、前后端交互

1. 添加前端页面(提交及展示数据)

submitIndex.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <form action="/submitIndex/" method="post"></br>
<!--        csrf_token-->
        用户名: <input type="text" name="username">
        年龄:<input type="text" name="age">
        <input type="submit" value="提交">
        <hr >
        <h2>用户列表</h2>
        <table style="border: 1px">
        <tr>
            <th>用户名</th>
            <th>年龄</th>
        </tr>
        {% for item in data %}
            <tr>
                <td>{{ item.username }}</td>
                <td>{{ item.age }}</td>
            </tr>
        {% endfor %}
            </table>
</form>
</body>
</html>

2. 后端处理页面请求

views.py

from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
def index(request):
    return render(request, 'index.html')


@csrf_exempt
def submitIndex(request):
    userList = []
    if request.method == 'POST':
        username = request.POST.get("username")
        age = request.POST.get("age")
        userList.append({'username': username, 'age': age})
        return render(request, 'submitIndex.html', {'data': userList})
    else:
        return render(request, 'submitIndex.html')

3. 新增url

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),# path('hello/', views.hello),
    path('submitIndex/', views.submitIndex),
]

4. 启动项目,并测试