当前位置:主页 > 建站知识 > APP开发 >

books应用程序的一些简单逻辑,demo只涉及增删改查

发布时间:2021-03-22 16:25   浏览次数:次   作者:admin
序言
Django对网站快速开发非常友好,这得益于该框架为我们做了大量的工作,使我们能够通过简单的配置和逻辑来开发网站的功能。但在使用Django的过程中,有一点一直让人不舒服,那就是Django的模版,Django模版通常要求你自己利用HTML+CSS+Jquery,这总感觉像是上一代的做法,前后端分离,不管对开发效率,多端支持,都是非常有益的。因此,本文希望通过一个简单的demo,介绍一下Django+Vue的前后端分离开发,将Django作为一个纯后端服务,为Vue页面的前端提供数据支持。
本文使用的是djangoversion2.2.5,Vueversion2.9.6。
工程准备
在这里略过django和Vue的安装~。
建立前前后后的项目:建立一个文件夹,然后创建一个项目,如下图~。
三、测试:
该命令进入后端文件夹book_demo,输入下面的命令,浏览器就可以在127.0.0.1:8000上看到欢迎页了。
manage.pyrunserver。
再次进入前端文件夹appfront,输入以下命令,浏览器就可以在127.0.0.1:8080看到欢迎页了。
恩普姆伦德夫。
上述两个命令也是对应前后端项目的启动命令,随后将该过程直接称为启动前后端项目。
后台实施。
作为django用于后端api服务的一个常用插件,django-rest-framework(DRF)提供了许多实用的功能,因此在本文demo中也应用了以下命令行输入命令:
pipinstalldjango-rest-framework的名称
在book_demo目录中创建一个名为books的新应用程序,并将urls.py文件添加到新应用程序中,命令行输入:
pythonmanage.pystartappbookscdbookstouchurls.py网站
目前的目录结构如下:
以下是一些简单配置的开始:
在django项目中配置DRF和books,在项目中打开settings.py文件,添加:
#book_demo/settings.pyINSTALLED显示显示:#django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#djangoadd'rest_framework','books',]
在访问api/路径时,可以配置整个项目的路由,以便在books应用中处理urls.py文件配置。
#book_demo/urls.pyfromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path('admin/',admin.site.urls)),path('api/',include('books.urls'))
以下是关于books应用程序的一些简单逻辑,demo只涉及增删改查。由于本节并非本文的重点,因此这里只讨论写代码的过程和贴代码,不详细说明代码:
将简单数据类Books写入models.py文件:
#books/models.pyfromdjango.dbimportmodelsclassBooks(models.Model):name=models.CharField(max_length=30):author=models.CharField(max_length=30,blank=True,null=True)
将serializer.py文件创建到books文件夹中,然后编写相应的序列器BooksSerializer:
#books/serializer.pyfromrest_frameworkimportserializersfrombooks.modelsimportBooksclassBooksSerializer(serializers.ModelSerializer):classMeta:model=Booksfields='__all__'
将相应的视图设置BooksViewSet写入views.py文件以处理请求:
#books/views.pyfromrest_frameworkimportviewsetsfrombooks.modelsimportBooksfrombooks.serializerimportBooksSerializer_classbooksViewSet(viewsets.ModelViewSet):queryset=Books.objects.all()serializer_class=BooksSerializer。
将相应的路由映射写入urls.py文件:
"#books/urls.pyfromdjango.urlsimportpath,includefromrest_framework.routersimportDefaultRouterfrombooksimportviewsrouter=DefaultRouter()router.register('books',views.BooksViewSet)"
至于books应用中的内容,如果熟悉DRF和Django流程的同学一定知道它们都做了些什么,这里只需简单说明篇幅关系,DRF通过视图集ViewSet的方式使我们可以对特定数据类Model进行增删改查,而不同的操作对应于不同的请求方式,例如查看所有books使用get方法,添加book使用post方法,等等,使得整个后端服务都是restful的。假如你真的不能理解代码的含义,你只要知道这之后,你就可以通过不同的网络请求来处理后端数据库的Books数据,然后再结合Django和DRF官方文档来学习代码,或者关注我自己以后的分享。
在此,您可以运行后端项目以查看结果,并运行命令行:
pythonmanage.pymakemigrationspythonmanage.pymigratepythonmanage.pyrunserver。
由于DRF提供的api可视化界面,浏览器访问127.0.1:8000/api/books/,如果出现了下面的界面,并且添加了正确的数据,那么说明后端的基本逻辑已经是ok了~下面的图是添加数据后的效果。
前置实现
下一步将进入appfront项目目录。