首页 > 其他 > 详细

django实例流程

时间:2019-01-31 12:19:20      阅读:184      评论:0      收藏:0      [点我收藏+]

学习笔记(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(‘<h1>ok</h1>‘)
    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>Title</title>
</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 %}
    <tr>
        <td>{{ i.username }}</td>
        <td>{{ i.sex }}</td>
        <td>{{ i.email }}</td>
    </tr>
    {% endfor %}

 

django实例流程

原文:https://www.cnblogs.com/cailunduo/p/10341244.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!