<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Backend on Shaowen Chen's Website</title><link>https://www.chenshaowen.com/en/tags/backend/</link><description>Recent content in Backend on Shaowen Chen's Website</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&amp;copy;2016 - {year}, All Rights Reserved.</copyright><lastBuildDate>Thu, 15 Nov 2018 00:00:00 +0000</lastBuildDate><sy:updatePeriod>weekly</sy:updatePeriod><atom:link href="https://www.chenshaowen.com/en/tags/backend/atom.xml" rel="self" type="application/rss+xml"/><item><title>Django Full-Stack Optimization Guide</title><link>https://www.chenshaowen.com/en/blog/django-full-stack-optimization-guide.html</link><pubDate>Thu, 15 Nov 2018 00:00:00 +0000</pubDate><atom:modified>Thu, 15 Nov 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/django-full-stack-optimization-guide.html</guid><description>As the data volume exploded, the system responded very slowly. We carried out a series of optimizations on the application, and the system&amp;rsquo;s response time improved by an order of magnitude. Overall, optimizations in file compression and faster network access gave a noticeable boost to frontend performance, while optimizations in stored procedures, caching, and logic code gave a noticeable boost to backend performance.</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Python</category><category>Optimization</category><category>Frontend</category><category>Backend</category><category>Guide</category><category>R&amp;D</category></item><item><title>Python and Django Development Practices</title><link>https://www.chenshaowen.com/en/blog/python-and-django-development-practices.html</link><pubDate>Fri, 19 Oct 2018 00:00:00 +0000</pubDate><atom:modified>Fri, 19 Oct 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/python-and-django-development-practices.html</guid><description>Compiled from the &amp;ldquo;Development Tips&amp;rdquo; series, collecting common problems and solutions in Python and Django development. 1. Sorting Python Iterables Iterable objects fall into 3 main categories: All sequence types, such as list, str, and tuple Some non-sequence types, such as dict and file Objects that contain an __iter__() or</description><dc:creator>微信公众号</dc:creator><category>Python</category><category>Django</category><category>R&amp;D</category><category>Learning</category><category>Backend</category></item><item><title>Frontend-Backend Symmetric Encrypted Transmission - AES</title><link>https://www.chenshaowen.com/en/blog/symmetric-encrypted-transmission-of-aes.html</link><pubDate>Wed, 26 Jul 2017 18:52:18 +0000</pubDate><atom:modified>Wed, 26 Jul 2017 18:52:18 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/symmetric-encrypted-transmission-of-aes.html</guid><description>1. Basic Concepts Symmetric encryption: Symmetric encryption is an encryption method that uses a single-key cryptosystem, in which the same key is used both to encrypt and to decrypt the information. Because it is fast, it is often used to encrypt the transmission of large amounts of data. DES (Data</description><dc:creator>微信公众号</dc:creator><category>Security</category><category>Frontend</category><category>Backend</category><category>Encryption</category><category>R&amp;D</category></item><item><title>Django Signals</title><link>https://www.chenshaowen.com/en/blog/signal-of-django.html</link><pubDate>Thu, 13 Jul 2017 13:06:10 +0000</pubDate><atom:modified>Thu, 13 Jul 2017 13:06:10 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/signal-of-django.html</guid><description>1. Basic Concepts Django ships with a signal dispatcher built in. Signals help decouple program modules. When an event occurs elsewhere in the application, a designated function is notified. Signals let certain senders notify a group of receivers that some action has taken place. 2. Using Signals 2.1 Declaring a</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Backend</category><category>Python</category><category>R&amp;D</category><category>Learning</category><category>Decoupling</category><category>Events</category></item><item><title>Django Class-Based Views</title><link>https://www.chenshaowen.com/en/blog/class-based-view-of-django.html</link><pubDate>Tue, 11 Jul 2017 16:36:56 +0000</pubDate><atom:modified>Tue, 11 Jul 2017 16:36:56 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/class-based-view-of-django.html</guid><description>Django has two kinds of views: function-based views and class-based views. The role of a view is mainly to fill in logic and return a response body. Function-based views are hard to extend and have a low rate of code reuse. Class-based views, on the other hand, can use inheritance</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Backend</category><category>Python</category><category>Class-Based Views</category><category>R&amp;D</category></item><item><title>Permission Management in Django REST Framework</title><link>https://www.chenshaowen.com/en/blog/permissions-of-django-rest-framework.html</link><pubDate>Fri, 07 Jul 2017 06:47:19 +0000</pubDate><atom:modified>Fri, 07 Jul 2017 06:47:19 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/permissions-of-django-rest-framework.html</guid><description>1. Permission Management in DRF Permission management in Django REST Framework consists of two parts.
One is Authentication. It specifies how the user is authenticated, obtaining request.user. The other is Permissions. It performs permission control over Django resources and user categories. 1.1 Authentication Methods The relevant source is in the rest_framework/authentication.</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Python</category><category>Backend</category><category>Security</category><category>API</category><category>Permissions</category><category>R&amp;D</category></item><item><title>Getting Started with Django REST Framework</title><link>https://www.chenshaowen.com/en/blog/101-of-django-rest-framework.html</link><pubDate>Thu, 22 Jun 2017 23:50:15 +0000</pubDate><atom:modified>Thu, 22 Jun 2017 23:50:15 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/101-of-django-rest-framework.html</guid><description>In the SaaS development I work on, there is a fairly high demand for development efficiency. From project initiation, prototype design and evaluation, requirements confirmation, frontend design, and backend development through to final acceptance, we complete one iteration in just a few weeks. Guided by agile development, we began rolling</description><dc:creator>微信公众号</dc:creator><category>Data</category><category>Backend</category><category>Interface</category><category>Django</category><category>Python</category><category>API</category><category>R&amp;D</category></item><item><title>Frontend-Backend Separation - Mock Data</title><link>https://www.chenshaowen.com/en/blog/mock-server.html</link><pubDate>Fri, 16 Jun 2017 21:10:54 +0000</pubDate><atom:modified>Fri, 16 Jun 2017 21:10:54 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/mock-server.html</guid><description>In frontend-backend separated development, when the backend API is not finished, the frontend cannot continue debugging. So that frontend and backend can develop in parallel, the frontend needs a set of API interface environments — this is the Mock API. The diagram below lays out the development flow nicely. Without a Mock data step, frontend-backend integration takes up a great deal of time.</description><dc:creator>微信公众号</dc:creator><category>Frontend</category><category>Backend</category><category>Mock</category><category>R&amp;D</category></item></channel></rss>