<?xml version="1.0" encoding="UTF-8"?>
<!--generator='jetpack-16.4-a.3'-->
<!--Jetpack_Sitemap_Buffer_News_XMLWriter-->
<?xml-stylesheet type="text/xsl" href="//linhfish.dev/news-sitemap.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
 <url>
  <loc>https://linhfish.dev/en/2026/10/24/flask-security-5-9-2-ra-mat-sua-loi-passkey-bo-phu-thuoc-humanize-kiem-tra-truoc-khi-nang-cap/</loc>
  <lastmod>2026-10-24T15:28:41Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask-Security 5.9.2 ra mắt: sửa lỗi passkey, bỏ phụ thuộc humanize — kiểm tra trước khi nâng cấp</news:title>
   <news:publication_date>2026-10-24T15:28:36Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/24/building-an-expense-tracker-with-django-17-dockerize-dockerfile-docker-compose-web-postgresql-redis/</loc>
  <lastmod>2026-10-24T15:15:41Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Building an Expense Tracker with Django #17: Dockerize — Dockerfile + docker-compose (web, PostgreSQL, Redis)</news:title>
   <news:publication_date>2026-10-24T15:13:16Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/24/django-sync-a-stale-object-with-refresh_from_db-in-5-minutes/</loc>
  <lastmod>2026-10-24T15:07:03Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Sync a Stale Object with refresh_from_db() in 5 Minutes</news:title>
   <news:publication_date>2026-10-24T15:04:26Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/24/django-rest-framework-pick-the-right-serializer-per-action-with-get_serializer_class-in-5-minutes/</loc>
  <lastmod>2026-10-24T14:56:19Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django REST Framework: Pick the Right Serializer per Action with get_serializer_class() in 5 Minutes</news:title>
   <news:publication_date>2026-10-24T14:55:01Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/24/flask-create-secure-email-confirmation-tokens-with-itsdangerous-in-5-minutes/</loc>
  <lastmod>2026-10-24T14:46:10Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: Create Secure Email Confirmation Tokens with itsdangerous in 5 Minutes</news:title>
   <news:publication_date>2026-10-24T14:44:41Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/24/fastapi-block-host-header-attacks-with-trustedhostmiddleware-in-5-minutes/</loc>
  <lastmod>2026-10-24T14:36:15Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: Block Host Header Attacks with TrustedHostMiddleware in 5 Minutes</news:title>
   <news:publication_date>2026-10-24T14:35:32Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/quan-ly-chi-tieu-voi-django-17-dockerize-dockerfile-docker-compose-web-postgresql-redis/</loc>
  <lastmod>2026-10-24T13:55:46Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Quản lý chi tiêu với Django #17: Dockerize — Dockerfile + docker-compose (web, PostgreSQL, Redis)</news:title>
   <news:publication_date>2026-10-24T13:28:57Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/linh-fish-dev-podcast-11-chan-host-header-attack-bang-trustedhostmiddleware-trong-5-phut/</loc>
  <lastmod>2026-10-24T12:39:02Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Linh Fish Dev Podcast #11: Chặn Host header attack bằng TrustedHostMiddleware trong 5 phút</news:title>
   <news:publication_date>2026-10-24T12:39:00Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/django-dong-bo-lai-object-da-loi-thoi-bang-refresh_from_db-trong-5-phut/</loc>
  <lastmod>2026-10-24T12:20:54Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: đồng bộ lại object đã lỗi thời bằng refresh_from_db() trong 5 phút</news:title>
   <news:publication_date>2026-10-24T12:10:31Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/fastapi-0-151-0-gui-null-khong-con-duoc-hieu-la-dung-mac-dinh-kiem-tra-ngay-truoc-khi-nang-cap/</loc>
  <lastmod>2026-10-24T12:10:10Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI 0.151.0: gửi null không còn được hiểu là &amp;quot;dùng mặc định&amp;quot; — kiểm tra ngay trước khi nâng cấp</news:title>
   <news:publication_date>2026-10-24T12:10:08Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/django-rest-framework-chon-serializer-theo-action-bang-get_serializer_class-trong-5-phut/</loc>
  <lastmod>2026-10-24T07:38:40Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django REST Framework: chọn serializer theo action bằng get_serializer_class() trong 5 phút</news:title>
   <news:publication_date>2026-10-24T07:38:38Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/fastapi-0-162-0-checkbox-bo-trong-khong-con-tu-thanh-false-kiem-tra-ngay-truoc-khi-nang-cap/</loc>
  <lastmod>2026-10-24T07:25:01Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI 0.162.0: checkbox bỏ trống không còn tự thành False — kiểm tra ngay trước khi nâng cấp</news:title>
   <news:publication_date>2026-10-24T07:24:59Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/flask-tao-token-xac-nhan-email-an-toan-bang-itsdangerous-trong-5-phut/</loc>
  <lastmod>2026-10-24T07:29:59Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: tạo token xác nhận email an toàn bằng itsdangerous trong 5 phút</news:title>
   <news:publication_date>2026-10-24T07:24:23Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/cve-2026-111497-node2shell-loi-brotli-vuot-mat-node-js-hai-package-python-bi-anh-huong-cap-nhat-brotli-1-2-1-ngay/</loc>
  <lastmod>2026-10-24T01:17:07Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>CVE-2026-111497 (Node2Shell): lỗi Brotli &amp;quot;vượt mặt&amp;quot; Node.js — hai package Python bị ảnh hưởng, cập nhật Brotli 1.2.1 ngay</news:title>
   <news:publication_date>2026-10-24T01:17:05Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/24/fastapi-chan-host-header-attack-bang-trustedhostmiddleware-trong-5-phut/</loc>
  <lastmod>2026-10-23T23:14:54Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: chặn Host header attack bằng TrustedHostMiddleware trong 5 phút</news:title>
   <news:publication_date>2026-10-23T23:14:53Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/building-an-expense-tracker-with-django-16-write-api-tests-with-apitestcase/</loc>
  <lastmod>2026-10-23T16:24:03Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Building an Expense Tracker with Django #16: Write API Tests with APITestCase</news:title>
   <news:publication_date>2026-10-23T16:21:36Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/django-rank-rows-right-in-sql-with-window-functions-skip-the-python-loop-in-5-minutes/</loc>
  <lastmod>2026-10-23T16:04:15Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Rank Rows Right in SQL with Window Functions — Skip the Python Loop in 5 Minutes</news:title>
   <news:publication_date>2026-10-23T16:02:20Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/wagtail-8-1-rc1-ra-mat-api-v3-gio-viet-duoc-du-lieu-ho-tro-python-3-15-va-chia-tay-python-3-10/</loc>
  <lastmod>2026-10-23T15:52:20Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Wagtail 8.1 RC1 ra mắt: API v3 giờ viết được dữ liệu, hỗ trợ Python 3.15 và chia tay Python 3.10</news:title>
   <news:publication_date>2026-10-23T15:52:18Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/fastapi-accept-html-form-data-with-form-end-422-errors-when-the-frontend-sends-forms-instead-of-json-in-5-minutes/</loc>
  <lastmod>2026-10-23T15:43:56Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: Accept HTML Form Data with Form() — End 422 Errors When the Frontend Sends Forms Instead of JSON in 5 Minutes</news:title>
   <news:publication_date>2026-10-23T15:39:21Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/flask-read-and-validate-the-json-body-the-right-way-no-more-html-error-pages-from-request-get_json-in-5-minutes/</loc>
  <lastmod>2026-10-23T15:21:58Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: Read and Validate the JSON Body the Right Way — No More HTML Error Pages from request.get_json() in 5 Minutes</news:title>
   <news:publication_date>2026-10-23T15:20:19Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/python-call-multiple-apis-in-parallel-with-asyncio-gather-and-semaphore-in-10-minutes/</loc>
  <lastmod>2026-10-24T01:52:09Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Python: Call Multiple APIs in Parallel with asyncio.gather and Semaphore in 10 Minutes</news:title>
   <news:publication_date>2026-10-23T14:57:56Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/quan-ly-chi-tieu-voi-django-16-viet-test-cho-api-apitestcase/</loc>
  <lastmod>2026-10-23T13:16:41Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Quản lý chi tiêu với Django #16: Viết test cho API (APITestCase)</news:title>
   <news:publication_date>2026-10-23T13:16:39Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/linh-fish-dev-podcast-10-goi-nhieu-api-song-song-bang-asyncio-gather-va-semaphore-trong-10-phut/</loc>
  <lastmod>2026-10-24T00:56:49Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Linh Fish Dev Podcast #10: Gọi nhiều API song song bằng asyncio.gather và Semaphore trong 10 phút</news:title>
   <news:publication_date>2026-10-23T12:34:59Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/wagtail-va-5-lo-hong-bao-mat-trong-ban-8-0-1-7-4-4-va-7-0-10-kiem-tra-phien-ban-ngay-hom-nay/</loc>
  <lastmod>2026-10-23T11:10:33Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Wagtail vá 5 lỗ hổng bảo mật trong bản 8.0.1, 7.4.4 và 7.0.10: kiểm tra phiên bản ngay hôm nay</news:title>
   <news:publication_date>2026-10-23T11:10:31Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/django-xep-hang-ngay-trong-sql-bang-window-function-khoi-vong-lap-python/</loc>
  <lastmod>2026-10-23T09:04:22Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: xếp hạng ngay trong SQL bằng Window function, khỏi vòng lặp Python</news:title>
   <news:publication_date>2026-10-23T09:04:20Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/fastapi-nhan-du-lieu-form-html-bang-form-het-loi-422-khi-frontend-gui-form-thay-vi-json-trong-5-phut/</loc>
  <lastmod>2026-10-23T07:06:45Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: nhận dữ liệu form HTML bằng Form() — hết lỗi 422 khi frontend gửi form thay vì JSON trong 5 phút</news:title>
   <news:publication_date>2026-10-23T07:06:44Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/pydantic-ai-va-3-lo-hong-bao-mat-chi-trong-2-ngay-ban-2-58-0-va-2-59-0-ai-xay-ai-agent-nen-nang-cap-ngay/</loc>
  <lastmod>2026-10-23T05:12:10Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Pydantic AI vá 3 lỗ hổng bảo mật chỉ trong 2 ngày: bản 2.58.0 và 2.59.0 — ai xây AI agent nên nâng cấp ngay</news:title>
   <news:publication_date>2026-10-23T05:12:09Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/flask-doc-va-validate-json-body-dung-cach-het-canh-api-tra-loi-html-voi-request-get_json-trong-5-phut/</loc>
  <lastmod>2026-10-23T03:11:49Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: đọc và validate JSON body đúng cách — hết cảnh API trả lỗi HTML với request.get_json() trong 5 phút</news:title>
   <news:publication_date>2026-10-23T03:11:47Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/fastapi-0-160-0-161-1-parameter-model-extraforbid-gio-quet-ca-field-ngoai-model-kiem-tra-ngay-truoc-khi-nang-cap/</loc>
  <lastmod>2026-10-23T01:15:50Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI 0.160–0.161.1: parameter model extra=&amp;quot;forbid&amp;quot; giờ &amp;quot;quét&amp;quot; cả field ngoài model — kiểm tra ngay trước khi nâng cấp</news:title>
   <news:publication_date>2026-10-23T01:15:48Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/23/python-goi-nhieu-api-song-song-bang-asyncio-gather-va-semaphore-trong-10-phut/</loc>
  <lastmod>2026-10-24T01:44:56Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Python: gọi nhiều API song song bằng asyncio.gather và Semaphore trong 10 phút</news:title>
   <news:publication_date>2026-10-22T23:12:25Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/expense-tracking-with-django-15-optimize-queries-with-select_related-prefetch_related/</loc>
  <lastmod>2026-10-22T19:00:11Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Expense Tracking with Django #15: Optimize Queries with select_related/prefetch_related</news:title>
   <news:publication_date>2026-10-22T18:56:26Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/23/flask-enable-cors-safely-with-flask-cors-whitelist-origins-in-5-minutes/</loc>
  <lastmod>2026-10-22T18:39:23Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: Enable CORS Safely with Flask-CORS — Whitelist Origins in 5 Minutes</news:title>
   <news:publication_date>2026-10-22T18:36:19Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/fastapi-ditch-the-deprecated-orjsonresponse-speed-up-json-responses-with-return-type-annotations-in-5-minutes/</loc>
  <lastmod>2026-10-22T17:02:59Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: Ditch the Deprecated ORJSONResponse — Speed Up JSON Responses with Return Type Annotations in 5 Minutes</news:title>
   <news:publication_date>2026-10-22T16:47:06Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/django-combine-querysets-with-union-intersection-difference-in-5-minutes-stop-concatenating-lists-in-python/</loc>
  <lastmod>2026-10-22T15:39:32Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Combine Querysets with union()/intersection()/difference() in 5 Minutes — Stop Concatenating Lists in Python</news:title>
   <news:publication_date>2026-10-22T15:35:48Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/fastapi-0-157-0-0-159-1-gop-parameter-models-tai-su-dung-khai-bao-query-header-cookie-va-form-giua-cac-endpoint/</loc>
  <lastmod>2026-10-22T15:14:16Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI 0.157.0–0.159.1: gộp parameter models — tái sử dụng khai báo query, header, cookie và form giữa các endpoint</news:title>
   <news:publication_date>2026-10-22T15:14:15Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/django-block-dirty-data-at-the-database-level-with-checkconstraint-and-uniqueconstraint-in-5-minutes/</loc>
  <lastmod>2026-10-22T15:15:03Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Block Dirty Data at the Database Level with CheckConstraint and UniqueConstraint in 5 Minutes</news:title>
   <news:publication_date>2026-10-22T15:11:40Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/quan-ly-chi-tieu-voi-django-15-toi-uu-query-voi-select_related-prefetch_related/</loc>
  <lastmod>2026-10-22T13:15:16Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Quản lý chi tiêu với Django #15: Tối ưu query với select_related/prefetch_related</news:title>
   <news:publication_date>2026-10-22T13:15:14Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/linh-fish-dev-podcast-9-django-chan-du-lieu-ban-ngay-o-tang-database-bang-checkconstraint-va-uniqueconstraint-trong-5-phut/</loc>
  <lastmod>2026-10-22T12:50:12Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Linh Fish Dev Podcast #9: Django: chặn dữ liệu bẩn ngay ở tầng database bằng CheckConstraint và UniqueConstraint trong 5 phút</news:title>
   <news:publication_date>2026-10-22T12:50:10Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/python-phat-hanh-khan-cap-3-15-1-3-14-9-3-13-17-cap-nhat-pip-va-certifi-ngay-khong-can-cai-lai-python/</loc>
  <lastmod>2026-10-22T11:12:50Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Python phát hành khẩn cấp 3.15.1, 3.14.9, 3.13.17: cập nhật pip và certifi ngay, không cần cài lại Python</news:title>
   <news:publication_date>2026-10-22T11:12:49Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/flask-bat-cors-an-toan-bang-flask-cors-origins-credentials-trong-5-phut/</loc>
  <lastmod>2026-10-22T09:49:23Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: bật CORS an toàn bằng Flask-CORS — origins, credentials trong 5 phút</news:title>
   <news:publication_date>2026-10-22T09:49:21Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/vercel-cho-phep-viet-routing-middleware-bang-python-chan-va-dieu-huong-request-ngay-truoc-khi-cham-app-fastapi-flask-django/</loc>
  <lastmod>2026-10-22T09:32:31Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Vercel cho phép viết Routing Middleware bằng Python: chặn và điều hướng request ngay trước khi chạm app FastAPI, Flask, Django</news:title>
   <news:publication_date>2026-10-22T09:32:30Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/fastapi-bo-orjsonresponse-da-deprecated-tang-toc-json-response-bang-return-type-annotation-trong-5-phut/</loc>
  <lastmod>2026-10-22T07:07:57Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: bỏ ORJSONResponse đã deprecated — tăng tốc JSON response bằng return type annotation trong 5 phút</news:title>
   <news:publication_date>2026-10-22T07:07:55Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/litellm-1-107-0-bi-danh-cap-pipeline-phat-hanh-malware-danh-cap-credential-song-tren-pypi-suot-gan-2-gio/</loc>
  <lastmod>2026-10-22T06:19:19Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>LiteLLM 1.107.0 bị &amp;quot;đánh cắp&amp;quot; pipeline phát hành: malware đánh cắp credential sống trên PyPI suốt gần 2 giờ</news:title>
   <news:publication_date>2026-10-22T06:05:02Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/django-gop-queryset-bang-union-intersection-difference-trong-5-phut-het-canh-cong-list-trong-python/</loc>
  <lastmod>2026-10-22T03:32:07Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: gộp queryset bằng union()/intersection()/difference() trong 5 phút — hết cảnh cộng list trong Python</news:title>
   <news:publication_date>2026-10-22T03:32:05Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/10/22/django-chan-du-lieu-ban-ngay-o-tang-database-bang-checkconstraint-va-uniqueconstraint-trong-5-phut/</loc>
  <lastmod>2026-10-22T00:39:29Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: chặn dữ liệu bẩn ngay ở tầng database bằng CheckConstraint và UniqueConstraint trong 5 phút</news:title>
   <news:publication_date>2026-10-22T00:39:27Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/building-an-expense-tracker-with-django-14-import-bank-statements-from-csv/</loc>
  <lastmod>2026-10-21T19:51:51Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Building an Expense Tracker with Django #14: Import Bank Statements from CSV</news:title>
   <news:publication_date>2026-10-21T19:47:18Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/django-fix-a-freezing-admin-page-when-foreignkey-has-thousands-of-records-with-autocomplete_fields-in-5-minutes/</loc>
  <lastmod>2026-10-21T19:28:18Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Fix a Freezing Admin Page When ForeignKey Has Thousands of Records with autocomplete_fields in 5 Minutes</news:title>
   <news:publication_date>2026-10-21T19:11:59Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/flask-organize-views-with-methodview-no-more-if-request-method-chains/</loc>
  <lastmod>2026-10-21T18:33:53Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: Organize Views with MethodView — No More if request.method Chains</news:title>
   <news:publication_date>2026-10-21T18:32:10Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/10/22/fastapi-serve-files-safely-with-fileresponse-block-path-traversal-in-5-minutes/</loc>
  <lastmod>2026-10-21T17:42:20Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: Serve Files Safely with FileResponse — Block Path Traversal in 5 Minutes</news:title>
   <news:publication_date>2026-10-21T17:40:26Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
</urlset>
