20170901 django流程之模板, model以及实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20170901 django流程之模板, model以及实例相关的知识,希望对你有一定的参考价值。

20170901 django流程之model以及实例

<4>生成同步数据库的脚本:python manage.py makemigrations

同步数据库: python manage.py migrate

注意:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下

的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。

<5>当我们访问http://127.0.0.1:8080/admin/时,会出现:

技术分享

所以我们需要为进入这个项目的后台创建超级管理员:python manage.py createsuperuser设置好用户名和密码后便可登录啦!

<6>清空数据库:python manage.py flush

<7>查询某个命令的详细信息: django-admin.py help startapp

admin 是Django 自带的一个后台数据库管理系统。

<8>启动交互界面 :python manage.py shell

这个命令和直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

<9>终端上输入python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用

实例练习1-提交数据并展示

<wiz_code_mirror>
 
 
 
xxxxxxxxxx
63
63
 
 
 
 
 
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
    <meta charset="UTF-8">
5
    <title>Title</title>
6
</head>
7
<body>
8
<h1>创建个人信息</h1>
9

10
<form action="/userInfor/" method="post">
11

12
    <p>姓名<input type="text" name="username"></p>
13
    <p>性别<input type="text" name="sex"></p>
14
    <p>邮箱<input type="text" name="email"></p>
15
    <p><input type="submit" value="submit"></p>
16

17
</form>
18

19
<hr>
20

21
<h1>信息展示</h1>
22

23
<table border="1">
24

25
    <tr>
26
        <td>姓名</td>
27
        <td>性别</td>
28
        <td>邮箱</td>
29
    </tr>
30
    {% for i in info_list %}
31

32
        <tr>
33
            <td>{{ i.username }}</td>
34
            <td>{{ i.sex }}</td>
35
            <td>{{ i.email }}</td>
36
        </tr>
37

38
    {% endfor %}
39

40
</table>
41

42
</body>
43
</html>
44

45

46
-----------------------url.py---------------------------------------
47
url(r‘^userInfor/‘, views.userInfor)
48

49
-----------------------views.py--------------------------------------
50

51
info_list=[]
52

53
def userInfor(req):
54

55
    if req.method=="POST":
56
        username=req.POST.get("username",None)
57
        sex=req.POST.get("sex",None)
58
        email=req.POST.get("email",None)
59

60
        info={"username":username,"sex":sex,"email":email}
61
        info_list.append(info)
62

63
    return render(req,"userInfor.html",{"info_list":info_list})
 
 
 

实例练习2-提交数据并展示(数据库)

<wiz_code_mirror>
 
 
 
x
89
 
 
 
 
 
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
    <meta charset="UTF-8">
5
    <title>Title</title>
6
</head>
7
<body>
8
<h1>创建个人信息</h1>
9

10
<form action="/userInfor/" method="post">
11

12
    <p>姓名<input type="text" name="username"></p>
13
    <p>性别<input type="text" name="sex"></p>
14
    <p>邮箱<input type="text" name="email"></p>
15
    <p><input type="submit" value="submit"></p>
16

17
</form>
18

19
<hr>
20

21
<h1>信息展示</h1>
22

23
<table border="1">
24

25
    <tr>
26
        <td>姓名</td>
27
        <td>性别</td>
28
        <td>邮箱</td>
29
    </tr>
30
    {% for i in info_list %}
31

32
        <tr>
33
            <td>{{ i.username }}</td>
34
            <td>{{ i.sex }}</td>
35
            <td>{{ i.email }}</td>
36
        </tr>
37

38
    {% endfor %}
39

40
</table>
41

42
</body>
43
</html>
44

45

46
----------------------------------------------models.py
47
from django.db import models
48

49
# Create your models here.
50

51

52
class UserInfor(models.Model):
53

54
    username=models.CharField(max_length=64)
55
    sex=models.CharField(max_length=64)
56
    email=models.CharField(max_length=64)
57

58
----------------------------------------------views.py
59

60
from django.shortcuts import render
61

62
from app01 import models
63
# Create your views here.
64

65

66
def userInfor(req):
67

68
    if req.method=="POST":
69
        u=req.POST.get("username",None)
70
        s=req.POST.get("sex",None)
71
        e=req.POST.get("email",None)
72

73

74
       #---------表中插入数据方式一
75
            # info={"username":u,"sex":e,"email":e}
76
            # models.UserInfor.objects.create(**info)
77

78
       #---------表中插入数据方式二
79
        models.UserInfor.objects.create(
80
            username=u,
81
            sex=s,
82
            email=e
83
        )
84

85
        info_list=models.UserInfor.objects.all()
86

87
        return render(req,"userInfor.html",{"info_list":info_list})
88

89
    return render(req,"userInfor.html")
 
 
 
 
 
 
 
 
 
 

以上是关于20170901 django流程之模板, model以及实例的主要内容,如果未能解决你的问题,请参考以下文章

Linux应用编程之串口操作20170901

Django REST framework之解析器实例以及源码流程分析

Django模板

Django之模板渲染

Python之Django框架执行流程简介

python Django教程 之模板渲染循环条件判断常用的标签过滤器