如何从 views.py 文件向 Django 数据库插入数据?
How to insert data to django database from views.py file?
如何从 views.py 文件中的函数向我的 django 数据库插入数据? python manage.py shell
是唯一的插入方式吗?
有关我使用的更多解释:
- python3.4
- django 1.8.2
- PyMySQL
例如:
models.py:
from django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
city = models.CharField(max_length=60)
views.py:
from django.http import HttpResponse
import pymysql
from books.models import Publisher
def send(request):
p = Publisher(name='Apress', city='Berkeley')
p.save()
urls.py
from niloofar.views import send
url(r'^index/', send),
我希望在加载页面索引时,发送功能起作用并将数据插入数据库。
它不起作用。它没有给出任何错误,当我刷新索引页面时也没有任何反应,没有任何东西被发送到数据库。我认为我尝试插入数据的方式存在语法错误。
请注意,即使我 运行 python manage.py shell
然后:
from books.models import Publisher
p = Publisher(name='Apress', city='Berkeley')
p.save()
不会向 django 数据库插入任何内容。
您可以只创建一个模型的实例并保存。假设你有一个 Article 模型:
from django.http import HttpResponse
from django.template import loader
from .models import Article
def index(request):
article = Article()
article.title = 'This is the title'
article.contents = 'This is the content'
article.save()
template = loader.get_template('articles/index.html')
context = {
'new_article_id': article.pk,
}
return HttpResponse(template.render(context, request))
你可以试试这个:
def myFunction(request):
myObj = MyObjectType()
myObj.customParameter = parameterX
...
myObj.save()
你的问题很不清楚。您可能应该通过 django-tutorial。
但是你肯定可以从视图中将数据插入到数据库中。假设您有一个名为 Foo
:
的模型
models.py
class Foo(models.Model):
name = models.CharField(max_length=100)
view.py
from .models import Foo
def some_name(request):
foo_instance = Foo.objects.create(name='test')
return render(request, 'some_name.html.html')
一个简单的方法是使用创建函数。通过提及字段名称及其值。以下示例代码可帮助您将数据从 views.py 插入数据库,并将数据库的内容显示到 html 页面。
假设我们有一个 table 看起来像这样
Name Age Marks
Bunny 4 10
Tanishq 12 12
models.py 看起来像这样
from django.db import models
# Create your models here.
class Student(models.Model):
student_name = models.CharField(max_length = 120)
student_age = models.IntegerField()
student_marks = models.IntegerField()
所以 views.py 看起来像
from django.shortcuts import render
from .models import Student # Student is the model class defined in models.py
# Assuming the data to be entered is presnet in these lists
stud_name = ['Aman', 'Vijay']
stud_age = [13, 12]
stud_marks = [20, 22]
def my_view(request, *args, **kwargs):
# Iterate through all the data items
for i in range(len(stud_name)):
# Insert in the database
Student.objects.create(Name = stud_name[i], Age = stud_age[i], Marks = stud_marks[i])
# Getting all the stuff from database
query_results = Student.objects.all();
# Creating a dictionary to pass as an argument
context = { 'query_results' : query_results }
# Returning the rendered html
return render(request, "home.html", context)
下面应该是home.html文件,显示所有输入的数据
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>HOME</h1>
<table>
<tr>
<th>Name</th>
<th>Age</th>
<th>Marks</th>
</tr>
{% for item in query_results %}
<tr>
<td>{{ item.student_name }}</td>
<td>{{ item.student_age }}</td>
<td>{{ item.student_marks }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
插入时需要进行以下更改,否则会出现类型错误
Student.objects.create(stud_name = stud_name[i], stud_age = stud_age[i], stud_marks = stud_marks[i])
如何从 views.py 文件中的函数向我的 django 数据库插入数据? python manage.py shell
是唯一的插入方式吗?
有关我使用的更多解释:
- python3.4
- django 1.8.2
- PyMySQL
例如:
models.py:
from django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
city = models.CharField(max_length=60)
views.py:
from django.http import HttpResponse
import pymysql
from books.models import Publisher
def send(request):
p = Publisher(name='Apress', city='Berkeley')
p.save()
urls.py
from niloofar.views import send
url(r'^index/', send),
我希望在加载页面索引时,发送功能起作用并将数据插入数据库。
它不起作用。它没有给出任何错误,当我刷新索引页面时也没有任何反应,没有任何东西被发送到数据库。我认为我尝试插入数据的方式存在语法错误。
请注意,即使我 运行 python manage.py shell
然后:
from books.models import Publisher
p = Publisher(name='Apress', city='Berkeley')
p.save()
不会向 django 数据库插入任何内容。
您可以只创建一个模型的实例并保存。假设你有一个 Article 模型:
from django.http import HttpResponse
from django.template import loader
from .models import Article
def index(request):
article = Article()
article.title = 'This is the title'
article.contents = 'This is the content'
article.save()
template = loader.get_template('articles/index.html')
context = {
'new_article_id': article.pk,
}
return HttpResponse(template.render(context, request))
你可以试试这个:
def myFunction(request):
myObj = MyObjectType()
myObj.customParameter = parameterX
...
myObj.save()
你的问题很不清楚。您可能应该通过 django-tutorial。
但是你肯定可以从视图中将数据插入到数据库中。假设您有一个名为 Foo
:
models.py
class Foo(models.Model):
name = models.CharField(max_length=100)
view.py
from .models import Foo
def some_name(request):
foo_instance = Foo.objects.create(name='test')
return render(request, 'some_name.html.html')
一个简单的方法是使用创建函数。通过提及字段名称及其值。以下示例代码可帮助您将数据从 views.py 插入数据库,并将数据库的内容显示到 html 页面。
假设我们有一个 table 看起来像这样
Name Age Marks
Bunny 4 10
Tanishq 12 12
models.py 看起来像这样
from django.db import models
# Create your models here.
class Student(models.Model):
student_name = models.CharField(max_length = 120)
student_age = models.IntegerField()
student_marks = models.IntegerField()
所以 views.py 看起来像
from django.shortcuts import render
from .models import Student # Student is the model class defined in models.py
# Assuming the data to be entered is presnet in these lists
stud_name = ['Aman', 'Vijay']
stud_age = [13, 12]
stud_marks = [20, 22]
def my_view(request, *args, **kwargs):
# Iterate through all the data items
for i in range(len(stud_name)):
# Insert in the database
Student.objects.create(Name = stud_name[i], Age = stud_age[i], Marks = stud_marks[i])
# Getting all the stuff from database
query_results = Student.objects.all();
# Creating a dictionary to pass as an argument
context = { 'query_results' : query_results }
# Returning the rendered html
return render(request, "home.html", context)
下面应该是home.html文件,显示所有输入的数据
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>HOME</h1>
<table>
<tr>
<th>Name</th>
<th>Age</th>
<th>Marks</th>
</tr>
{% for item in query_results %}
<tr>
<td>{{ item.student_name }}</td>
<td>{{ item.student_age }}</td>
<td>{{ item.student_marks }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
插入时需要进行以下更改,否则会出现类型错误
Student.objects.create(stud_name = stud_name[i], stud_age = stud_age[i], stud_marks = stud_marks[i])