用django写一个学生竞赛报名网站
时间: 2023-07-15 12:14:41 浏览: 41
好的,我可以为您提供一个简单的学生竞赛报名网站的Django项目框架。
首先,建立一个Django项目:
```
$ django-admin startproject competition
```
然后,进入项目目录并创建一个名为“registration”的应用程序:
```
$ cd competition
$ python manage.py startapp registration
```
接下来,我们需要在应用程序中定义模型。我将创建一个“Student”模型,该模型具有与学生有关的基本信息,如姓名、年龄、性别、学校等。创建一个名为“models.py”的文件,并在其中添加以下内容:
```python
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
gender = models.CharField(max_length=10)
school = models.CharField(max_length=50)
def __str__(self):
return self.name
```
然后,我们需要在应用程序中创建一个表单,以便学生可以填写其报名信息。创建一个名为“forms.py”的文件,并在其中添加以下内容:
```python
from django import forms
from .models import Student
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = ['name', 'age', 'gender', 'school']
```
接下来,我们需要在应用程序中创建视图,以便学生可以提交报名表单。创建一个名为“views.py”的文件,并在其中添加以下内容:
```python
from django.shortcuts import render, redirect
from .forms import StudentForm
def register(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
form.save()
return redirect('registration:success')
else:
form = StudentForm()
return render(request, 'registration/register.html', {'form': form})
def success(request):
return render(request, 'registration/success.html')
```
在上面的代码中,我们定义了两个视图函数。第一个视图函数“register”使用“StudentForm”表单类创建一个表单,并将其呈现给用户填写。如果表单已被验证,则将提交的数据保存到数据库中,并重定向到成功页面。第二个视图函数“success”仅呈现成功页面。
接下来,我们需要在应用程序中创建URL模式。打开“registration”应用程序文件夹中的“urls.py”文件,并添加以下内容:
```python
from django.urls import path
from . import views
app_name = 'registration'
urlpatterns = [
path('', views.register, name='register'),
path('success/', views.success, name='success'),
]
```
最后,我们需要创建模板以呈现表单和成功页面。在“registration”应用程序文件夹中创建一个名为“templates”的文件夹,并在其中创建一个名为“registration”的文件夹。在该文件夹中,创建两个HTML文件:“register.html”和“success.html”。
register.html:
```html
{% extends 'base.html' %}
{% block content %}
<h2>Student Registration</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Register">
</form>
{% endblock %}
```
success.html:
```html
{% extends 'base.html' %}
{% block content %}
<h2>Registration Success!</h2>
{% endblock %}
```
最后,我们需要更新主项目的URL模式。打开“competition”文件夹中的“urls.py”文件,并添加以下内容:
```python
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('registration.urls')),
]
```
现在,我们已经创建了一个简单的学生竞赛报名网站!运行以下命令启动服务器:
```
$ python manage.py runserver
```
然后在浏览器中访问 http://localhost:8000/registration/ 即可看到报名表单。