{ "info": { "author": "RaPoSpectre", "author_email": "rapospectre@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Django Simple Serializer\n========================\n\n--------------\n\n[English Doc][1]\n\nDjango Simple Serializer \u662f\u4e00\u4e2a\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u5c06 Django \u6570\u636e\u6216\u8005\npython data \u5e8f\u5217\u5316\u4e3a json\\|raw \u6570\u636e\u3002\n\n\u4e3a\u4ec0\u4e48\u8981\u7528 Django Simple Serializer ?\n-------------------------------------\n\n\u5bf9\u4e8e\u5e8f\u5217\u5316 Django \u6570\u636e\u7684\u89e3\u51b3\u65b9\u6848\u5df2\u7ecf\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a\n\ndjango.core.serializers\n~~~~~~~~~~~~~~~~~~~~~~~\n\nDjango\u5185\u5efa\u5e8f\u5217\u5316\u5668, \u5b83\u53ef\u4ee5\u5e8f\u5217\u5316Django model query set\n\u4f46\u65e0\u6cd5\u76f4\u63a5\u5e8f\u5217\u5316\u5355\u72ec\u7684Django model\u6570\u636e\u3002\u5982\u679c\u4f60\u7684model\u91cc\u542b\u6709\u6df7\u5408\u6570\u636e ,\n\u8fd9\u4e2a\u5e8f\u5217\u5316\u5668\u540c\u6837\u65e0\u6cd5\u4f7f\u7528(\u5982\u679c\u4f60\u60f3\u76f4\u63a5\u4f7f\u7528\u5e8f\u5217\u5316\u6570\u636e). \u9664\u6b64\u4e4b\u5916,\n\u5982\u679c\u4f60\u60f3\u76f4\u63a5\u628a\u5e8f\u5217\u5316\u6570\u636e\u8fd4\u56de\u7ed9\u7528\u6237,\u663e\u7136\u5b83\u5305\u542b\u4e86\u5f88\u591a\u654f\u611f\u53ca\u5bf9\u7528\u6237\u65e0\u7528\u5bf9\u4fe1\u606f\u3002\n\nQuerySet.values()\n~~~~~~~~~~~~~~~~~\n\n\u548c\u4e0a\u9762\u4e00\u6837, QuerySet.values() \u540c\u6837\u6ca1\u6cd5\u5de5\u4f5c\u5982\u679c\u4f60\u7684model\u91cc\u6709\nDateTimeField \u6216\u8005\u5176\u4ed6\u7279\u6b8a\u7684 Field \u4ee5\u53ca\u989d\u5916\u6570\u636e\u3002\n\ndjango-rest-framework serializers\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\ndjango-rest-framework \u662f\u4e00\u4e2a\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5feb\u901f\u6784\u5efa REST API \u7684\u5f3a\u529b\u6846\u67b6\u3002\n\u4ed6\u62e5\u6709\u5b8c\u5584\u7684\u5e8f\u5217\u5316\u5668\uff0c\u4f46\u5728\u4f7f\u7528\u4e4b\u524d\u4f60\u9700\u8981\u82b1\u8d39\u4e00\u4e9b\u65f6\u95f4\u5165\u95e8, \u5e76\u5b66\u4e60 cbv\n\u7684\u5f00\u53d1\u65b9\u5f0f, \u5bf9\u4e8e\u6709\u65f6\u95f4\u9700\u6c42\u7684\u9879\u76ee\u663e\u7136\u8fd9\u4e0d\u662f\u6700\u597d\u7684\u89e3\u51b3\u65b9\u6848\u3002\n\ndjango simple serializer\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n\u6211\u5e0c\u671b\u53ef\u4ee5\u5feb\u901f\u7b80\u5355\u7684\u5e8f\u5217\u5316\u6570\u636e,\n\u6240\u4ee5\u6211\u8bbe\u8ba1\u4e86\u4e00\u79cd\u53ef\u4ee5\u4e0d\u7528\u4efb\u4f55\u989d\u5916\u7684\u914d\u7f6e\u4e0e\u5b66\u4e60\u800c\u5c06Django data \u6216\u8005 python\ndata \u5e8f\u5217\u5316\u4e3a\u76f8\u5e94\u7684\u6570\u636e\u7684\u7b80\u5355\u7684\u65b9\u5f0f\u3002 \u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u5199\u4e86 django simple\nserializer\u3002\n\ndjango simple serializer \u7684\u5b9e\u9645\u4f8b\u5b50: `\u6211\u7684\u4e2a\u4eba\u7f51\u7ad9\u540e\u53f0\u6570\u636e\u63a5\u53e3`_\n\n--------------\n\n\u8fd0\u884c\u9700\u6c42\n--------\n\nPython 2:\n~~~~~~~~~\n\nDjango >= 1.5\n\nPython >= 2.6\n\nPython 3:\n~~~~~~~~~\n\nDjango >= 1.8\n\nPython >= 3\n\n\u5b89\u88c5\n----\n\nInstall using pip:\n\n::\n\n pip install django-simple-serializer\n\n\u4f7f\u7528 django simple serializer \u8fdb\u884c\u5f00\u53d1\n--------------------------------------\n\n\u5e8f\u5217\u5316Django data\n~~~~~~~~~~~~~~~~~\n\n\u5047\u8bbe\u6211\u4eec\u6709\u4ee5\u4e0bDjango models\uff1a\n\n::\n\n class Classification(models.Model):\n c_name = models.CharField(max_length=30, unique=True)\n\n class Article(models.Model):\n caption = models.CharField(max_length=50)\n classification = models.ForeignKey(Classification, related_name='cls_art')\n content = models.TextField()\n publish = models.BooleanField(default=False)\n\n\u4f7f\u7528django simple serializer\u7684\u7b80\u5355\u4f8b\u5b50\uff1a\n\n::\n\n from dss.Serializer import serializer\n article_list = Article.objects.all()\n data = serializer(article_list)\n\ndata:\n\n::\n\n [{'read_count': 0, 'create_time': 1432392456.0, 'modify_time': 1432392456.0, 'sub_caption': u'first', 'comment_count': 0, u'id': 31}, {'read_count': 0, 'create_time': 1432392499.0, 'modify_time': 1432392499.0, 'sub_caption': u'second', 'comment_count': 0, u'id': 32}]\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b, \u5e8f\u5217\u5668\u4f1a\u8fd4\u56de\u4e00\u4e2a list \u6216\u8005 dict(\u5bf9\u4e8e\u5355\u4e2amodel\u5b9e\u4f8b),\n\u4f60\u53ef\u4ee5\u8bbe\u7f6e\u53c2\u6570 \u201coutput\\_type\u201d \u6765\u51b3\u5b9a\u5e8f\u5217\u5668\u8fd4\u56de json/raw.\n\n--------------\n\nAPI \u624b\u518c\n--------\n\ndss.Serializer\n^^^^^^^^^^^^^^\n\n\u63d0\u4f9b\u5e8f\u5217\u5668\n\n*function* serializer(\\ *data, datetime\\_format=\u2018timestamp\u2019,\noutput\\_type=\u2018raw\u2019, include\\_attr=None, exclude\\_attr=None,\nforeign=False, many=False, through=True*)\n\nParameters:\n^^^^^^^^^^^\n\n- data(\\ *Required*\\ \\|(QuerySet, Page, list, django model\n object))-\u5f85\u5904\u7406\u6570\u636e\n- datetime\\_format(\\ *Optional*\\ \\|string)-\u5982\u679c\u5305\u542b datetime \u5c06\n datetime \u8f6c\u6362\u6210\u76f8\u5e94\u683c\u5f0f.\u9ed8\u8ba4\u4e3a \u201ctimestamp\u201d\uff08\u65f6\u95f4\u6233\uff09\n- output\\_type(\\ *Optional*\\ \\|string)-serialize type.\n \u9ed8\u8ba4\u201craw\u201d\u539f\u59cb\u6570\u636e\uff0c\u5373\u8fd4\u56delist\u6216dict\n- include\\_attr(\\ *Optional*\\ \\|(list, tuple))-\u53ea\u5e8f\u5217\u5316 include\\_attr\n \u5217\u8868\u91cc\u7684\u5b57\u6bb5\u3002\u9ed8\u8ba4\u4e3a None\n- exclude\\_attr(\\ *Optional*\\ \\|(list, tuple))-\u4e0d\u5e8f\u5217\u5316 exclude\\_attr\n \u5217\u8868\u91cc\u7684\u5b57\u6bb5\u3002\u9ed8\u8ba4\u4e3a None\n- foreign(\\ *Optional*\\ \\|bool)-\u662f\u5426\u5e8f\u5217\u5316 ForeignKeyField\n \u3002include\\_attr \u4e0e exclude\\_attr \u5bf9 ForeignKeyField \u4f9d\u65e7\u6709\u6548\u3002 \u9ed8\u8ba4\u4e3a\n False\n- many(\\ *Optional*\\ \\|bool)-\u662f\u5426\u5e8f\u5217\u5316 ManyToManyField \u3002include\\_attr\n \u4e0e exclude\\_attr \u5bf9 ManyToManyField \u4f9d\u65e7\u6709\u6548 \u9ed8\u8ba4\u4e3a False\n- through(\\ *Optional*\\ \\|bool)-\u662f\u5426\u5e8f\u5217\u5316 ManyToManyField \u4e2d through\n \u5c5e\u6027\u6570\u636e \u9ed8\u8ba4\u4e3a True\n\n.. _\u6211\u7684\u4e2a\u4eba\u7f51\u7ad9\u540e\u53f0\u6570\u636e\u63a5\u53e3: https://github.com/bluedazzle/django-vue.js-blog/blob/master/api/views.py\n\u7528\u6cd5:\n^^^^^\n\n**datetime\\_format:**\n\n+--------------+------------------------------------------------------+\n| parameters | intro |\n+==============+======================================================+\n| string | \u8f6c\u6362 datetime \u4e3a\u5b57\u7b26\u4e32\u3002\u5982\uff1a \u201c2015-05-10 10:19:22\u201d |\n+--------------+------------------------------------------------------+\n| timestamp | \u8f6c\u6362 datetime \u4e3a\u65f6\u95f4\u6233\u3002\u5982\uff1a \u201c1432124420.0\u201d |\n+--------------+------------------------------------------------------+\n\n\u4f8b\u5b50:\n\n::\n\n from dss.Serializer import serializer\n article_list = Article.objects.all()\n data = serializer(article_list, datetime_format='string', output_type='json')\n\ndata:\n\n::\n\n [\n {\n \"read_count\": 0,\n \"sub_caption\": \"first\",\n \"publish\": true,\n \"content\": \"first article\",\n \"caption\": \"first\",\n \"comment_count\": 0,\n \"create_time\": \"2015-05-23 22:47:36\",\n \"modify_time\": \"2015-05-23 22:47:36\",\n \"id\": 31\n },\n {\n \"read_count\": 0,\n \"sub_caption\": \"second\",\n \"publish\": false,\n \"content\": \"second article\",\n \"caption\": \"second\",\n \"comment_count\": 0,\n \"create_time\": \"2015-05-23 22:48:19\",\n \"modify_time\": \"2015-05-23 22:48:19\",\n \"id\": 32\n }\n ]\n\n**output\\_type**\n\n+--------------+----------------------------------------------------+\n| parameters | intro |\n+==============+====================================================+\n| raw | \u5c06list\u6216dict\u4e2d\u7684\u7279\u6b8a\u5bf9\u8c61\u5e8f\u5217\u5316\u540e\u8f93\u51fa\u4e3alist\u6216dict |\n+--------------+----------------------------------------------------+\n| dict | \u540c raw |\n+--------------+----------------------------------------------------+\n| json | \u8f6c\u6362\u6570\u636e\u4e3a json |\n+--------------+----------------------------------------------------+\n\n[STRIKEOUT:xml \u8f6c\u6362\u6570\u636e\u4e3a xml] (\u6682\u65f6\u53bb\u9664)\n\n\u4f8b\u5b50:\n\n::\n\n from dss.Serializer import serializer\n article_list = Article.objects.all()[0]\n data = serializer(article_list, output_type='json')\n\ndata:\n\n::\n\n {\n \"read_count\": 0,\n \"sub_caption\": \"first\",\n \"publish\": true,\n \"content\": \"first article\",\n \"caption\": \"first\",\n \"comment_count\": 0,\n \"create_time\": \"2015-05-23 22:47:36\",\n \"modify_time\": \"2015-05-23 22:47:36\",\n \"id\": 31\n }\n\n**include\\_attr**\n\n\u4f8b\u5b50:\n\n::\n\n from dss.Serializer import serializer\n article_list = Article.objects.all()\n data = serializer(article_list, output_type='json', include_attr=('content', 'caption',))\n\ndata:\n\n::\n\n [\n {\n \"content\": \"first article\",\n \"caption\": \"first\"\n },\n {\n \"content\": \"second article\",\n \"caption\": \"second\"\n }\n ]\n\n**exclude\\_attr**\n\n\u4f8b\u5b50:\n\n::\n\n from dss.Serializer import serializer\n article_list = Article.objects.all()\n data = serializer(article_list, output_type='json', exclude_attr=('content',))\n\ndata:\n\n::\n\n [\n {\n \"read_count\": 0,\n \"sub_caption\": \"first\",\n \"publish\": true,\n \"caption\": \"first\",\n \"comment_count\": 0,\n \"create_time\": 1432392456,\n \"modify_time\": 1432392456,\n \"id\": 31\n },\n {\n \"read_count\": 0,\n \"sub_caption\": \"second\",\n \"publish\": false,\n \"caption\": \"second\",\n \"comment_count\": 0,\n \"create_time\": 1432392499,\n \"modify_time\": 1432392499,\n \"id\": 32\n }\n ]\n\n\n**foreign**", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hengdai/django-simple-serializer", "keywords": "django serializer", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dss-serializer", "package_url": "https://pypi.org/project/dss-serializer/", "platform": "", "project_url": "https://pypi.org/project/dss-serializer/", "project_urls": { "Homepage": "https://github.com/hengdai/django-simple-serializer" }, "release_url": "https://pypi.org/project/dss-serializer/1.1/", "requires_dist": null, "requires_python": "", "summary": "Django Simple Serializer is a serializer to help user serialize django data or python list into json,xml,dict data in a simple way.", "version": "1.1" }, "last_serial": 4872350, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "fa3adcda15c8b7173655866c9d2e6082", "sha256": "3f13b5470eb725140e32065d01c5493991afff608915d1502fded34f815b79f8" }, "downloads": -1, "filename": "dss-serializer-1.1.tar.gz", "has_sig": false, "md5_digest": "fa3adcda15c8b7173655866c9d2e6082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8849, "upload_time": "2019-02-27T02:42:45", "url": "https://files.pythonhosted.org/packages/3e/41/02efffadeca1d08ca12e760eb0acd65cd95f8ffd11b61b3dbd6599a832f7/dss-serializer-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa3adcda15c8b7173655866c9d2e6082", "sha256": "3f13b5470eb725140e32065d01c5493991afff608915d1502fded34f815b79f8" }, "downloads": -1, "filename": "dss-serializer-1.1.tar.gz", "has_sig": false, "md5_digest": "fa3adcda15c8b7173655866c9d2e6082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8849, "upload_time": "2019-02-27T02:42:45", "url": "https://files.pythonhosted.org/packages/3e/41/02efffadeca1d08ca12e760eb0acd65cd95f8ffd11b61b3dbd6599a832f7/dss-serializer-1.1.tar.gz" } ] }