• Django系列3:Model的简单对接


    1、models.py

    from django.db import models
    
    # Create your models here.
    class Student(models.Model):
        s_name = models.CharField(max_length=16)
        s_age = models.IntegerField(default=1)
    
    

    2、python manage.py makemigrations

    (venv) MacBookPro:HelloDjango zhangxm$ python manage.py makemigrations
    Migrations for 'Two':
      Two/migrations/0001_initial.py
        - Create model Student
    (venv) MacBookPro:HelloDjango zhangxm$ 
    
    

    # Generated by Django 2.2.9 on 2020-01-22 02:28
    
    from django.db import migrations, models
    
    
    class Migration(migrations.Migration):
    
        initial = True
    
        dependencies = [
        ]
    
        operations = [
            migrations.CreateModel(
                name='Student',
                fields=[
                    ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                    ('s_name', models.CharField(max_length=16)),
                    ('s_age', models.IntegerField(default=1)),
                ],
            ),
        ]
    
    

    3、python manage.py migrate

    (venv) MacBookPro:HelloDjango zhangxm$ python manage.py migrate
    Operations to perform:
      Apply all migrations: Two, admin, auth, contenttypes, sessions
    Running migrations:
      Applying Two.0001_initial... OK
    (venv) MacBookPro:HelloDjango zhangxm$ 
    
    

    4 DDL

    -- auto-generated definition
    create table Two_student
    (
      id     integer     not null
        primary key
      autoincrement,
      s_name varchar(16) not null,
      s_age  integer     not null
    );
    
    
    

    5、Django ORM CRUD

    Two->>urls.py

    
    from django.conf.urls import url
    
    from Two import views
    
    urlpatterns = [
    
        url('^index/', views.index),
        url('^addstudent/', views.addstudent),
        url('^getstudents/', views.getstudents),
        url('^updatestudent/', views.updatestudent),
        url('^deletestudent/', views.deletestudent),
    
    ]
    
    

    Two->>views.py

    import random
    
    from django.http import HttpResponse
    from django.shortcuts import render
    
    # Create your views here.
    from Two.models import Student
    
    
    def index(request):
        return HttpResponse("Two index")
    
    
    def addstudent(request):
        student = Student()
        student.s_name = "Jerry %d" % random.randrange(100)
        student.save()
    
        return HttpResponse("Add Success %s" % student.s_name)
    
    
    def getstudents(request):
        students = Student.objects.all()
        for student in students:
            print(student.s_name)
    
            context = {
                "hobby": "PlayGames",
                "eat": "meat",
                "students": students
            }
    
        #return HttpResponse("Students List")
        return render(request, 'student_list.html', context=context)
    
    
    def updatestudent(request):
        student = Student.objects.get(pk=2)
        student.s_name = 'Updated Name'
        student.save()
        return HttpResponse("Update Student Success")
    
    
    def deletestudent(request):
    
        student = Student.objects.get(pk=3)
        student.delete()
    
        return HttpResponse("Delete Student Success")
    
    

    /->>templates->>student_list.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Student List</title>
    </head>
    <body>
    
    this is student list page
    
    {{ hobby }}
    
    {#{{ students }}#}
    
    <ul>
        {% for student in students %}
            <li>{{student.s_name }}</li>
        {% endfor %}
    </ul>
    
    </body>
    </html>
    
  • 相关阅读:
    VB C# 语法对比图 (代码实例)
    改进了的一个邮件发送类
    什么时候应该使用 ==?什么时候应该使用 Equals?
    c#写的贪吃蛇小游戏
    七招制胜ASP.NET应用程序开发
    SQL Server开发人员应聘常被问的问题汇总
    DataTable中数据记录的统计
    ASP.NET中数据库数据导入Excel并打印
    在.NET中得到计算机硬件信息的一些功能
    C#.NET 中的类型转换
  • 原文地址:https://www.cnblogs.com/xidianzxm/p/12227967.html
Copyright © 2020-2023  润新知