【发布时间】:2021-05-07 14:02:46
【问题描述】:
我是 Django 的新手,并且停留在特定的点上。我想从进入数据库的 html 中获取用户输入,使用特定的 python 脚本对其进行处理并将结果返回到同一个 html 页面。
我希望用户在“exam_score”行中输入分数,然后使用特定的 python 脚本处理该输入,然后将结果输出到“uni_name_1_result”。目前,只打印 'Hello world' 的 python 脚本就足够了,只是想了解它是如何完成的。
不胜感激。
models.py
from django.db import models
from django.core.validators import MaxValueValidator, MinValueValidator
# Create your models here.
class User(models.Model):
first_name = models.CharField(max_length=128)
last_name = models.CharField(max_length=128)
email = models.EmailField(max_length=254,unique=True)
exam_score = models.FloatField(null=True, validators=[MinValueValidator(0.0),MaxValueValidator(700)])
uni_name_1 = models.CharField(max_length=254)
uni_name_1_result = models.CharField(max_length=254)
forms.py
from django import forms
from django.core import validators
from ielts_app.models import User
class NewUserForm(forms.ModelForm):
# validations can be set here
class Meta():
model = User
fields = '__all__'
views.py
from django.shortcuts import render
# from ielts_app import forms
from ielts_app.forms import NewUserForm
# from django.http import HttpResponseRedirect
def index(request):
return render(request,'ielts_app/index.html')
def users(request):
form = NewUserForm()
if request.method == 'POST':
form = NewUserForm(request.POST)
if form.is_valid():
variable:form.cleaned_data
form.save(commit=True) # to save forum data (user data), commit=True to database
# return HttpResponseRedirect('/THANKS/')
return index(request) # return back to homeage after getting user data
else:
print("ERROR!")
return render(request,'ielts_app/users.html',{'form':form})
users.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Users</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<h1>Please Sign Up:</h1>
<div class="container">
<form method="POST">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" class='btn btn-primary' value="Submit">
</form>
</div>
</body>
</html>
【问题讨论】:
标签: django django-models django-views django-forms django-database