<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Django Ninja Quickstart on CS 347</title>
    <link>/activities/django-ninja-quickstart/</link>
    <description>Recent content in Django Ninja Quickstart on CS 347</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="/activities/django-ninja-quickstart/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Quick Start Part 1: First API</title>
      <link>/activities/django-ninja-quickstart/part-1/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/activities/django-ninja-quickstart/part-1/</guid>
      <description>&lt;h2 id=&#34;install&#34;&gt;Install&lt;/h2&gt;&#xA;&lt;p&gt;Add Django Ninja to your project:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;uv add django-ninja&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Just like &lt;code&gt;uv add &amp;quot;channels[daphne]&amp;quot;&lt;/code&gt; did in the Channels tutorial, this records the dependency in &lt;strong&gt;pyproject.toml&lt;/strong&gt;, installs it into &lt;strong&gt;.venv&lt;/strong&gt;, and pins the exact versions in &lt;strong&gt;uv.lock&lt;/strong&gt;. Commit both files.&lt;/p&gt;&#xA;&lt;p&gt;Django Ninja works with any Django project. The original Quick Start creates a new project and an &lt;code&gt;events&lt;/code&gt; app at this point. You don&amp;rsquo;t: you already have a project, &lt;code&gt;locallibrary_config&lt;/code&gt;, and the &lt;code&gt;chat&lt;/code&gt; app plays the part of &lt;code&gt;events&lt;/code&gt; for the rest of this guide.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Start Part 2: Models &amp; Schemas</title>
      <link>/activities/django-ninja-quickstart/part-2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/activities/django-ninja-quickstart/part-2/</guid>
      <description>&lt;p&gt;On this page you&amp;rsquo;ll give your chat rooms and messages a home in the database, then turn the &lt;code&gt;Room&lt;/code&gt; model into a complete CRUD API, and add pagination and filtering. Along the way you&amp;rsquo;ll see how schemas are generated from your models.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-models&#34;&gt;The models&lt;/h2&gt;&#xA;&lt;p&gt;Nothing Ninja-specific here, just regular Django models. The original Quick Start has a single &lt;code&gt;Event&lt;/code&gt; model. Your chat needs two: a &lt;code&gt;Room&lt;/code&gt;, and the &lt;code&gt;Message&lt;/code&gt;s posted in it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Start Part 3: Auth, Routers &amp; Next Steps</title>
      <link>/activities/django-ninja-quickstart/part-3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/activities/django-ninja-quickstart/part-3/</guid>
      <description>&lt;p&gt;The rooms API works, but it all lives in one file and anyone can change data. On this page you&amp;rsquo;ll move the endpoints into the &lt;code&gt;chat&lt;/code&gt; app, require login for writes, and let signed-in users post messages that show up in the chat page right away.&lt;/p&gt;&#xA;&lt;h2 id=&#34;move-the-endpoints-into-a-router&#34;&gt;Move the endpoints into a router&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Router&lt;/code&gt; is a group of endpoints that you mount on the API under a prefix, much like Django&amp;rsquo;s &lt;code&gt;include()&lt;/code&gt;. Each app can own its endpoints and the project just wires them together.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
