python 如何使用Django
在每个Django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也可以有联系。所有的APP共享项目资源。
昨天我已经在Test 文件夹下创建了webdemo 目录
这样就创建了一个叫做webdemo的APP,django自动生成“webdemo”文件夹及相关文件
编写路由
路由都写在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑(视图)。
.index相当于是访问的index方法
.test相当于访问的test的方法
编写视图函数
编写业务处理逻辑,一般都在views.py文件里
上面两个图,test这个url指向了views里的test()视图函数
运行web服务 在Test目录上运行
python manage.py runserver 127.0.0.1:8081
在浏览器输入 127.0.0.1:8081/test/
ok
出现test
返回HTML文件
在webdemo 同一级创建templates目录
在templates目录中新建一个index.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<h1 style="color: black">Hello World! dsdsdsds</h1>
<h1>用户输入:</h1>
<form action="/index/" method="post">
{% csrf_token %}
用户名:<input type="text" name="username" /><br />
密码:<input type="password" name="password" /><br />
<input type="submit" value="提交" />
</form>
<h1>用户展示</h1>
<table>
<thead>
<tr>用户名</tr>
<tr>密码</tr>
</thead>
<tbody>
{%for item in data%}
<tr>
<td>{{item.user}}</td>
<td>{{item.pwd}}</td>
</tr>
{%endfor%}
</tbody>
</table>
</body>
<script type="text/javascript" src="/static/js/jquery-3.4.1.min.js"></script>
</html>
需要修改settings文件的相应内容让框架知道我们在哪放的页面。
os.path.join 是将多个路径组合后返回 就是BASE_DIR 与templates合并成一个路径
使用静态文件
CSS、JavaScript放到哪呢?
在webdemo同级新建一个static目录
在static下新建了一个js目录,然后下载一个query-3.4.1.min.js
需要对settings进行配置,让框架知道static目录在哪
接收用户的数据
因为django有一个跨站请求保护机制,这需要我们在index.html文件中加入一行{% csrf_token %}。
刷新index页面,输入点东西,然后我们在cmd中可以看到print语句打印出来的相应数据了。
如何将数据返回给前端页面
views.py
return render(request, ‘index.html’, {‘data’: user_list})
index.HTML文件:
将遍历data的值 赋给item 注意变量用{{}}
遍历用{% for a in b%} {%endfor%}
{% for item in data %}
<tr>
<td>{{ item.user }}</td>
<td>{{ item.pwd }}</td>
</tr>
{% endfor %}