介绍
本教程介绍了如何在 Django Web 框架中执行 ajax 请求。作为示例的一部分,我们将创建一个简单的点赞应用程序。
词汇表
- 项目初始化
- 创建模型
- 创建视图
- 写网址
- 使用 Jquery AJax 执行请求。
- 将模型注册到管理员并添加一些帖子。
执行:
1. 启动 Django 项目——这里我假设你已经完成了 Django 安装。
- 要创建 Django 项目,请执行:
$ django-admin startproject django_example
- 创建项目后,我们需要创建一个 django 应用程序。要创建一个应用程序,说“post”,请执行以下操作:
$ cd django_example $ python manage.py startapp post
- 转到 django_example/settings.py 添加 post 应用
- 现在您将拥有如下文件:
2. 创建模型:要创建模型,请转到 post 目录并打开 models.py 。
- 在models.py中,首先创建post表。要创建帖子表,您需要编写:
class Post(models.Model):
post_heading = models.CharField(max_length=200)
post_text = models.TextField()
def __unicode__(self): # If python2 use __str__ if python3
return unicode(self.post_heading)
- 然后在models.py中,创建类似表。要创建类似的表,您需要编写:
class Like(models.Model):
post = models.ForeignKey(Post)
- 进行迁移和迁移步骤:
$ python manage.py makemigrations $ python manage.py migrate
完成这些步骤后,我们就可以使用我们的数据库表了。
3. 创建视图:
要创建视图,我们需要转到 post 目录并打开 views.py
- 一、导入之前创建的Models和HTTPresponse
from .models import Post, Like
from django.http import HttpResponse
- 创建索引视图以呈现所有帖子。代码示例:
def index(request):
posts = Post.objects.all() # Getting all the posts from database
return render(request, 'post/index.html', { 'posts': posts })
- 创建 likePost 视图以喜欢帖子。当我们点击“喜欢按钮”时,将调用此视图。代码示例:
def likePost(request):
if request.method == 'GET':
post_id = request.GET['post_id']
likedpost = Post.objects.get(pk=post_id) #getting the liked posts
m = Like(post=likedpost) # Creating Like Object
m.save() # saving it to store in database
return HttpResponse("Success!") # Sending an success response
else:
return HttpResponse("Request method is not a GET")
一旦我们的视图被创建,我们将开始编写模板和 jQuery 来执行 ajax 请求。
4. 创建 URL:
要创建 url,请打开 django_example/urls.py。你的 django_example/urls.py 应该是这样的:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('post.urls')), # To make post app available at /
]
要创建 url,请创建文件 post/urls.py。你的 post/urls.py 应该是这样的:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'), # index view at /
url(r'^likepost/$', views.likePost, name='likepost'), # likepost view at /likepost
]
5.制作模板并执行ajax请求:
- 创建一个文件 post/templates/post/index.html。代码示例:
Like Post App
{% for post in posts %}
{{ forloop.counter }}) {{ post.post_heading }}
{{ post.post_text }}
Like
{% endfor %}
Basically, what we are doing here is - we are making an ajax get request -> /likepost?post_id=
6. 将模型注册到管理员并添加一些帖子:
- 打开 post/admin.py。
- 将模型导入 admin.py。
from .models import Post, Like
- 注册您的模型:
admin.site.register(Post)
admin.site.register(Like)
现在使用 django 默认管理门户添加一些帖子。访问 http://localhost:8000/ 查看和喜欢帖子。我还将这个示例应用程序添加到我的 github 中,您可以参考。
参考:
- https://docs.djangoproject.com/en/1.9/intro/tutorial01/
Djangoing 快乐!!!
本博客由 Anshul Singhal 撰写。如果您还想在这里展示您的博客,请参阅 GBlog,了解 GeeksforGeeks 上的客座博客写作。