软件:Pycharm2020 Python:python3.7.5 Django:django3.0.8 数据库:mysql5.7.30
github链接 https://github.com/yt-xy/Django-student
views.py
from django.shortcuts import render def index(request): words = 'World!' return render(request, 'index.html', context={'words': words})templates/index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>学员管理系统</title> </head> <body> Hello {{ words }} </body> </html>urls.py
from django.conf.urls import url from django.contrib import admin from stu.views import index urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', index, name='index'), ]再次启动项目,进入 http://127.0.0.1:8000 即可看到 Hello World!
views.py
from django.shortcuts import render from .models import Student def index(request): students = Student.objects.all() return render(request, 'index.html', context={'students': students})index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>学员管理系统</title> </head> <body> <ul> {% for student in students %} <li>{{ student.name }} - {{ student.get_status_display }}</li> {% endfor %} </ul> </body> </html>forms.py
from django import forms from .models import Student class StudentForm(forms.Form): name = forms.CharField(label='姓名', max_length=128) sex = forms.ChoiceField(label='性别', choices=Student.SEX_ITEMS) profession = forms.CharField(label='职业', max_length=128) email = forms.EmailField(label='邮箱', max_length=128) qq = forms.CharField(label='QQ', max_length=128) phone = forms.CharField(label='手机', max_length=128)可修改为:
class StudentForm(forms.ModelForm): def clean_qq(self): cleaned_data = self.cleaned_data['qq'] if not cleaned_data.isdigit(): raise forms.ValidationError('必须是数字!') return int(cleaned_data) class Meta: model = Student fields = ( 'name', 'sex', 'profession', 'email', 'qq', 'phone' )views.py
from django.http import HttpResponseRedirect from django.shortcuts import render from django.urls import reverse from .forms import StudentForm from .models import Student def index(request): students = Student.objects.all() if request.method == 'POST': form = StudentForm(request.POST) if form.is_valid(): cleaned_data = form.cleaned_data student = Student() student.name = cleaned_data['name'] student.sex = cleaned_data['sex'] student.email = cleaned_data['email'] student.profession = cleaned_data['profession'] student.qq = cleaned_data['qq'] student.phone = cleaned_data['phone'] student.save() return HttpResponseRedirect(reverse('index')) else: form = StudentForm() context = { 'students': students, 'form': form, } return render(request, 'index.html', context=context)可修改为:
def index(request): students = Student.objects.all() if request.method == 'POST': form = StudentForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('index')) else: form = StudentForm() context = { 'students': students, 'form': form, } return render(request, 'index.html', context=context)现在就可以添加数据并在前端页面显示了>.<