Django 入门学习(3)

发布时间:2019-08-26 07:16:21编辑:auto阅读(1166)

    在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当于一个内置的ORM框架。


    settings.py 默认已经绑定了sqlite3


    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }



    根据MTV结构,数据库应该在model.py里面创建,如下所示


    model.py

    from django.db import models
    # Create your models here.
    class UserInfo(models.Model):
        user=models.CharField(max_length=32)
        email=models.CharField(max_length=32)


    在settings.py里面需要注册App


    settings.py

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'MyApp1'
    ]



    之后运行下面2条命令就会自己创建对应的数据库

    Python manage.py makemigrations
    python manage.py migrate


    接下来,在views.py把用户提交的信息写入表, 然后读取该表的内容放入一个列表,把这个列表发给模板引擎生成对应的html页面


    views.py

    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    from MyApp1 import models
    # Create your views here.
    
    def index(request):
        if request.method == 'POST':
            u=request.POST.get('user')
            e=request.POST.get('email')
            models.UserInfo.objects.create(user=u,email=e)
        data_list=models.UserInfo.objects.all()
        return render(request,'index.html',{'data':data_list})


    Index.html还是和之前一样

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <h1>This is 5th Example!</h1>
        <form action="/index/" method="post">
            <input type="text" name="user">
            <input type="email" name="email">
            <input type="submit" value="Submit">
        </form>
        <table border="1">
            <th>用户名</th>
            <th>邮箱</th>
            <tr>
                {% for item in data %}
                 <td> {{ item.user }}</td>
                 <td> {{ item.email }}</td>
            </tr>
        {% endfor %}
        </table>
    </body>
    </html>


    最后运行


    wKiom1j955qSMxg-AACuoi97e1o613.jpg


    图形工具查看一下sqlite3,确认数据已经保存

    wKioL1j955zBNinVAACuc8Ub8Ds370.jpg


关键字

上一篇: c作业3

下一篇: FastDFS的高级用法(3)