作者:名禅 | 来源:互联网 | 2023-09-18 17:58
学习笔记(django简单流程):urls.py的代码:用户输入url然后给url.py去处理,我的url.py是这样:fromdjango.contribimportadminf
学习笔记(django简单流程):
urls.py的代码:
用户输入url然后给url.py去处理,我的url.py是这样:
from django.contrib import admin
from django.urls import path
from blog import views
urlpatterns = [
path(‘admin/‘, admin.site.urls),
path(‘cur_time/‘,views.cur_time),
path(‘userInfo‘,views.userInfo)
]
View Code
那么django内部会利用循环遍历去找用户所输入的路径,假设用户输入的是"127.0.0.1:端口号/cur_time",则对应的会去执行views下边的cur_time函数。
views.py的函数:
from django.shortcuts import render,HttpResponse
import datetime
from blog import models
def cur_time(request):
times = datetime.datetime.now()
# return HttpResponse(‘ok
‘)
return render(request,‘cur_time.html‘,{‘abc‘:times})#render是渲染的意思
# user_list = []
def userInfo(req):
#要判断req是post还是get
# req.POST :{‘username‘:xxx, ‘sex‘:xxx}
if req.method==‘POST‘:
u = req.POST.get(‘username‘,None) #有就取username的值 无就取None
s = req.POST.get(‘sex‘, None)
e = req.POST.get(‘email‘, None)
# user = {‘username‘:username,‘sex‘:sex,‘email‘:email}
# user_list.append(user)
models.UserInfo.objects.create(
username=u,
sex=s,
email=e,
#往数据库里面插入信息
)
user_list = models.UserInfo.objects.all()
return render(req,‘index.html‘,{‘user_list‘:user_list})
View Code小白需要注意的点:
return render(request,‘cur_time.html‘,{‘abc‘:times})
render的request携带着很多信息,类似之前学的wsgi的environ参数,第二个参数是html文件参数,用来对页面进行渲染给用户看,而第三个参数是个字典形式,
{‘abc‘:times}是指将html文件里的{{abc}}换成后端给他传过去的times,这样就简单实现了前后端交互动作。
views.py里面还可以对数据库进行操作,这里示例:当用户在浏览器输入相关信息时将这些信息给存到数据库里面,那么就要在models.py做相关操作:
from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length=64)
sex = models.CharField(max_length=64)
email = models.CharField(max_length=64)
View Code然后再在views.py引入model的这个UserInfo类对这个类进行信息插入。
对上面views.py的相关代码进行截取如下:
models.UserInfo.objects.create(
username=u,
sex=s,
email=e,
#往数据库里面插入信息
)
user_list = models.UserInfo.objects.all()
return render(req,‘index.html‘,{‘user_list‘:user_list})
View Code
下面附cur_time.html和index.html文件代码:
cur_time.html
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<form action="/userInfo" method="post">
<p>姓名<input type="text" name="username">p>
<p>性别<input type="text" name="sex">p>
<p>邮箱<input type="text" name="email">p>
<p><input type="submit" name="submit">p>
form>
<hr>
<h1>数据显示h1>
<table border="1px">
<tr>
<td>姓名td>
<td>性别td>
<td>邮箱td>
tr>
{# user_list=[{‘username‘:username,‘sex‘:sex,‘email‘:email},{},{}]#}
{% for i in user_list %}
<tr>
<td>{{ i.username }}td>
<td>{{ i.sex }}td>
<td>{{ i.email }}td>
tr>
{% endfor %}
table>
body>
html>
index.html
还有一个需要注意的点,就是这里涉及到一个模板操作(如何在html文件进行for循环操作):
用{%%}来包含for循环 用{%endfor%}结束for循环
示例代码如下:
{% for i in user_list %}
{{ i.username }} |
{{ i.sex }} |
{{ i.email }} |
{% endfor %}