django_4页面跳转和数据改写

auth:xiangxianzhang

Date:2018-5-1

Email:550276107@qq.com

GitHub:https://github.com/xxz199539/notebook

1.创建项目
创建app
创建template文件

这里写图片描述

2.改写项目目录下的setting文件,在以下地方改写代码

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'grade',
    'stu'
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'day41',
        'USER': 'root',
        'PASSWORD': '123456',
        'PORT': '3306',
        'HOST': 'localhost'
    }
}
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'


STATIC_URL = '/static/'

3.在stu下写model模型

from django.db import models

# Create your models here.
from grade.models import Grade


class Student(modls.Model):
    s_name = models.CharField(max_length=20)
    s_create_time = models.DateField()
    s_opreate_time = models.DateField()
    g = models.ForeignKey(Grade)
    #创建一个外键,连接到grade

    class Meta:
        db_table = 'day41_student'

4.在stu下写views方法

from django.core.urlresolvers import reverse

from django.http import HttpResponseRedirect
from django.shortcuts import render

from stu.models import Student


def AllStu(request, g_id):
    # stus = Student.objects.filter(g_id=g_id)
    #
    # return render(request, 'student.html', {'stus': stus})
    # 业务逻辑
    return HttpResponseRedirect(
        reverse('s:reStu', kwargs={'g_id': g_id})
    )


def redirectStu(request, g_id):
    stus = Student.objects.filter(g_id=g_id)
    return render(request, 'student.html', {'stus': stus})


def delStu(request):
    stu_id = request.GET.get('stu_id')
    Student.objects.filter(id=stu_id).delete()

    return HttpResponseRedirect('/g/allgrade/')



def upStu(request,stu_id):
    if request.method == 'GET':
        return render(request, 'upStu.html')
    if request.method == 'POST':
        # stu_id = request.GET.get('stu.id')
        stu = Student.objects.get(id=stu_id)
        stu.g_id = request.POST.get('id')
        g_id = stu.g_id
        stu.s_name = request.POST.get('name')
        stu.s_create_time = request.POST.get('create_time')
        stu.s_opreate_time = request.POST.get('opreate_time')
        stu.save()
        return  HttpResponseRedirect(
            reverse('s:reStu', kwargs={'g_id': g_id})
        )

5.创建urls文件并写入个方法的数据接口

from django.conf.urls import url
from stu import views

urlpatterns = [
    url(r'addstudent/', views.addStu),
    url(r'allstudent/(\d+)/', views.AllStu, name='alls'),
    url(r'redirectStu/(?P<g_id>\d+)/', views.redirectStu, name='reStu'),
    url(r'delStu', views.delStu),
    url(r'upStu/(\d+)/', views.upStu, name='upStu')
]

6.在grade的modle文件下写入Grade

from django.db import models

class Grade(models.Model):
    g_name = models.CharField(max_length=10)

    class Meta:
        db_table = 'day41_grade'

7.在grade的views写入方法

from django.http import HttpResponseRedirect
from django.shortcuts import render

# Create your views here.
from grade.models import Grade
from stu.models import Student


def AllGrade(request):
    gs = Grade.objects.all()
    return render(request, 'grade.html', {'gs': gs})

8.在grade下创建urls文件并写入数据接口

from django.conf.urls import url, include
from grade import views

urlpatterns = [
    url(r'allgrade/', views.AllGrade),
]

9.创建数据库并实现迁移

在对两个app都编写MVT后就可以创建一个完整的数据库了,在Mavicat的本地数据库目录下新建一个day4_1(项目名称)的数据库即可

扫描二维码关注公众号,回复: 1466317 查看本文章

10.添加数据

这里写图片描述

添加数据后在数据库中就会看到相应的数据,而页面将会跳转到所有学生的页面

这里写图片描述

在所有学生的页面有对学生进行修改或者删除的链接
点击删除后,该条数据将会被删除,数据库中的相应数据相应数据也会被删除

点击修改链接后,将会进入修改页面

这里写图片描述

对学生信息进行改写后会跳转到一个按g_id分组的数据页面

这里写图片描述

这里写图片描述
由上面的两图可以看到他们是以g_id等于2分组的。

另外我们打开grade的显示所有班级的页面(为了偷懒我直接在数据库中添加了班级的数据)
点开2班,我们就会看到g_id等于2的所有学生信息,这是因为我们在创建Student模型的时候创建了外键来链接Grade

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41768400/article/details/80207506
今日推荐