使用django框架,完成前端输入名称,后端查询数据库,根据名称返回数据
时间: 2023-05-30 11:07:23 浏览: 98
以下是使用django框架完成前端输入名称,后端查询数据库,根据名称返回数据的示例:
1. 创建一个django项目和一个app:
```
$ django-admin startproject myproject
$ cd myproject
$ python manage.py startapp myapp
```
2. 在`myapp/models.py`中定义一个模型:
```python
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
email = models.EmailField()
def __str__(self):
return self.name
```
3. 在`myproject/settings.py`中添加`myapp`应用:
```python
INSTALLED_APPS = [
'myapp',
...
]
```
4. 在`myapp/views.py`中添加一个视图函数,用于处理前端请求:
```python
from django.shortcuts import render
from myapp.models import Person
def search_person(request):
if request.method == 'POST':
name = request.POST['name']
persons = Person.objects.filter(name=name)
return render(request, 'search_person.html', {'persons': persons})
else:
return render(request, 'search_person.html')
```
5. 在`myproject/urls.py`中添加一个URL映射:
```python
from django.urls import path
from myapp.views import search_person
urlpatterns = [
path('search_person/', search_person, name='search_person'),
...
]
```
6. 在`myapp/templates/search_person.html`中添加一个表单:
```html
<form method="post" action="{% url 'search_person' %}">
{% csrf_token %}
<input type="text" name="name">
<button type="submit">Search</button>
</form>
{% if persons %}
<ul>
{% for person in persons %}
<li>{{ person.name }}, {{ person.age }}, {{ person.email }}</li>
{% endfor %}
</ul>
{% endif %}
```
7. 运行django服务器:
```
$ python manage.py runserver
```
8. 访问`http://localhost:8000/search_person/`,输入名称后点击`Search`按钮即可查询数据库,并返回匹配的数据。