文章目录
视图部分
1.创建数据模型
from django.db import models
# Create your models here.
class Stu(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField(default=18)
sex = models.BooleanField(default=True)
def showMessage(self):
return '我叫 ' + self.name + ' --我的年龄是: ' + str(self.age)
2.数据迁移
python manage.py makemigrations
python manage.py migrate
from django.urls import path, re_path
from django.contrib import admin
from .views import *
# 对namespace进行注册
# 创建主urls命名空间后,需要在子路由进行声明
app_name = 'app01'
urlpatterns = [
# path('index',getIndex),
path('addStu/',addStu),
path('postData/',getPostData,name="postData"),
# 利用主路由设定的命名空间,在子路由子路径设置name属性来指代该条路径
re_path(r'^getStu/(?P<sId>\d+)/$',getStu, name="all"),
# path('getTemp/',getTemp),
#
#
# path('getExtends/',getExtends),
]
from urllib import request
from django.shortcuts import render, HttpResponse, redirect
from .models import *
from django import template
# Create your views here.
# 构建首页
# def getIndex(request):
#
# return render(request,'app01/index.html')
def addStu(request):
# 进入信息填写表单页面
return render(request,'app01/addStuForm.html')
def getPostData(reqeust):
# # 对表单提交的数据进行处理
# stu = Stu()
# # get()方法获取的是表单标签属性 name 的值
# stu.name = reqeust.GET.get('name')
# stu.age = reqeust.GET.get('age')
#
# if reqeust.GET.get('sex') == '男':
# stu.sex = True
# else:
# stu.sex = False
#
# stu.save()
# return HttpResponse('添加学生 ' + stu.name + ' 信息成功!')
# 对 POST 请求的处理
# 对表单提交的数据进行处理
stu = Stu()
# get()方法获取的是表单标签属性 name 的值
stu.name = reqeust.POST.get('name')
stu.age = reqeust.POST.get('age')
if reqeust.POST.get('sex') == '男':
stu.sex = True
else:
stu.sex = False
stu.save()
# 获取请求数据 的 CONTENT_LENGTH:数据长度
str = reqeust.META['CONTENT_LENGTH']
return HttpResponse(str)
def getStu(request,sId):
stu = Stu.objects.get(pk=sId)
# 路径重定向,让此方法返回自定义路径
return redirect('app01NameSpace:all')
# return render(request,'app01/index.html',locals())
#
#
# return render(request,'app01/index.html',{'stus':ss})
# t = template.Template('<h1>{{ name }}</h1>')
# c = template.Context({ 'name':stu.name })
# str = t.render(c)
#
# return HttpResponse(str)
# def getTemp(request):
# return render(request,'app01/temp.html')
#
#
#
# def getExtends(request):
# return render(request,'app01/son.html')
5.addStuForm.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!-- 点击提交,数据会被提交到 app01NameSpace:postData 中 -->
<form action="{% url 'app01NameSpace:postData' %}" method="post">
<!-- 服务器验证是否来自自身网址的请求,防止跨站攻击 -->
{% csrf_token %}
<label for="">姓名:</label><input type="text" name="name"/> </br>
<label for="">年龄:</label><input type="text" name="age"/> </br>
<label for="">性别:</label><input type="text" name="sex"/> </br>
<input type="submit" value="提交">
</form>
</body>
</html>
6.index.html
<!DOCTYPE html>
<!-- 引入静态文件 -->
{% load staticfiles %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'css/index.css' %}">
</head>
<body>
<div id="nav">
<div class="son_nav">
<h1> 欢迎来到图书管理系统!</h1>
</div>
</div>
<div id="middle">
<div class="banner">
<ul>
<li><a href="">学生成绩查询</a></li>
<li><a href="">老师课程查询</a></li>
<li><a href="">学生课程查询</a></li>
<li><a href="">学生考试查询</a></li>
</ul>
</div>
<div class="content">
<ul>
<li>
学生姓名: {{ stu.name }}
</li>
<li>
学生年龄: {{ stu.age }}
</li>
<li>
{% if stu.sex == 1 %}
学生性别: 男
{% endif %}
{% if stu.sex == 0 %}
学生性别: 女
{% endif %}
</li>
</ul>
</div>
</div>
</body>
</html>