Django平台数据服务

django-pds的Python项目详细描述


Info:Faster REST API development using Django and mongodb
Repository:https://github.com/knroy/django-pds

pds代表平台数据服务。你需要更快地创建restapi吗?只是一些配置然后我们走?django pds是来帮忙的。在

django-pds::使用Django和mongodb进行更快的restapi开发,具有行级安全性和现成的内置前端查询支持。在

django-pds提供了一些复杂的方法,可配置为更快地使用Django和MongoDB创建restapi。在

快速入门

安装:

pipinstalldjango_pds

创建新应用:

^{pr2}$

settings中添加django-pdsapi应用程序。当我们要使用restapi时,rest_framework和{}应用程序也需要。django_pds建立在^{}和{a2}之上。使用MongoEngine时,不直接支持admin。因此,INSTALLED_APPSlist的基本结构如下所示

INSTALLED_APPS=['rest_framework','django.contrib.staticfiles','corsheaders','django_pds','api']

djangosettings文件将如下所示:

.....importmongoengine......ALLOWED_HOSTS=['*']REST_FRAMEWORK={'UNAUTHENTICATED_USER':None}INSTALLED_APPS=['rest_framework','django.contrib.staticfiles','corsheaders','django_pds','api']MIDDLEWARE=['corsheaders.middleware.CorsMiddleware','django.middleware.common.CommonMiddleware']CORS_ORIGIN_ALLOW_ALL=TrueCORS_ALLOW_METHODS=('DELETE','GET','OPTIONS','PATCH','POST','PUT',)...............DATABASES={}# mongodb connectionMONGODB_DATABASE_NAME='django_pds_db'mongoengine.connect(MONGODB_DATABASE_NAME)..........

定义文档架构:

frommongoengineimport*fromdjango_pds.core.baseimportSimpleBaseDocumentclassPage(SimpleBaseDocument):title=StringField(max_length=200,required=True)tags=ListField(StringField(required=True),required=True)

创建插入Rest API:

apiappviews.py文件中创建一个名为RestInsert的类

importjsonfromuuidimportuuid4fromrest_frameworkimportstatusfromrest_framework.responseimportResponsefromdjango_pds.core.pds.genericimportdata_insertfromdjango_pds.core.rest.responseimporterror_response,success_responsefromdjango_pds.core.rest.viewsimportBaseAPIViewclassRestInsert(BaseAPIView):defpost(self):try:document_name='Page'data={"ItemId":str(uuid4()),"title":"Using django-pds","tags":["django","django-pds","mongoengine"]}# as we are not checking row level security,# ignoring offered row level securityerror,result=data_insert(document_name,data,ignore_security=True)iferror:response=error_response(result)returnResponse(response,status=status.HTTP_400_BAD_REQUEST)response=success_response(result)returnResponse(response,status=status.HTTP_400_BAD_REQUEST)exceptBaseExceptionase:response=error_response(str(e))returnResponse(response,status=status.HTTP_400_BAD_REQUEST)

api.urls.py中添加视图:

fromdjango.urlsimportre_pathfrom.viewsimportRestInserturlpatterns=[re_path(r'^insert$',RestInsert.as_view(),name='rest api insert'),]

并在应用程序app_name.urls中添加rest api应用程序:

fromdjango.urlsimportinclude,re_pathurlpatterns=[re_path(r'^rest_api/',include('api.urls'))]

如何让它充满活力?如何通过请求发送数据或从前端发送数据,并在API中从请求中收集数据并插入数据库?在

我们需要稍微更改一下RestInsertAPI视图,如下所示:

fromdjango_pds.core.rest.decoratorsimportrequired....classRestInsert(BaseAPIView):# required decorator check request.data # before calling the post method for these required params@required("document_name","data")defpost(self,request):try:# we are expecting payload with the requestdocument_name=request.data['document_name']data=request.data['data']# as we are not checking row level security,# ignoring offered row level security.....

要请求这个restapi端点,请使用postman或{}。在

卷曲请求:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{
	"document_name": "Page",
	"data": {
		"ItemId": "30447042-e0a3-4f15-8fd0-b3742d9538a9", 
		"title": "django pds test page", 
		"tags": ["mongoengine", "django-pds"]
	}
}' \
  http://localhost:8000/rest_api/insert

或者用邮递员:

继续阅读django-pds wiki,了解Django PDS的积垢操作。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用Jackson解析非同构JSON对象数组   java为什么'Stream<T>::<A>toArray(IntFunction<A[]>)`接受没有绑定的类型参数A?   java在JavaFX2.0中获取给定布局中的节点大小?   java双链接列表创建节点   java使用HashMap添加、删除和查找   java中push_back(C++)的等效方法是什么?   java在Jetty中运行servlet时获得HTTP 500   用java显示包含图像和文本的页面的最简单文档格式   swing从选项卡窗格Java中的不同选项卡访问数据   字符串Java帮助检查登录类使用。CSV文件   java Struts 1.2.9动作链接   包含max元素的java列表   currentNode上的jcr Java空检查   在Android中使用OpenNLP的POSTaggerMe时出现java NullPointerException   java Logback只将消息记录到syslog一次   如何用Java编写构造函数的API文档   java从gallery中获取所有图像并存储在阵列中   java Maven:将外部jar文件夹添加到类路径