<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yusra Muktar</title>
    <description>The latest articles on DEV Community by Yusra Muktar (@yusra_muktar_).</description>
    <link>https://dev.to/yusra_muktar_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3291265%2F2fa96a4d-d5c5-40bd-a4b4-85c78e1fc294.png</url>
      <title>DEV Community: Yusra Muktar</title>
      <link>https://dev.to/yusra_muktar_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yusra_muktar_"/>
    <language>en</language>
    <item>
      <title>Django Architecture: Models, Views and Templates</title>
      <dc:creator>Yusra Muktar</dc:creator>
      <pubDate>Tue, 08 Jul 2025 14:00:49 +0000</pubDate>
      <link>https://dev.to/yusra_muktar_/django-architecture-models-views-and-templates-2o0c</link>
      <guid>https://dev.to/yusra_muktar_/django-architecture-models-views-and-templates-2o0c</guid>
      <description>&lt;p&gt;Django is a Python framework that makes it easier to create web sites using Python.&lt;br&gt;
Django emphasizes reusability of components, also referred to as DRY (Don't Repeat Yourself), and comes with ready-to-use features like login system, database connection and CRUD operations (Create Read Update Delete).&lt;/p&gt;

&lt;p&gt;Assumptions-I will assume that you have your development already configured for Django/Python development.&lt;br&gt;
And that you have already started your project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7q48174u85lh3z8nfrs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7q48174u85lh3z8nfrs.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
This is the projects settings/structure as you can see we have manage.py&lt;br&gt;
which is a command-line utility that lets you interact with your Django project. It runs the development server, creates database tables, and more.&lt;br&gt;
You can check out &lt;a href="https://dev.to/yusra_muktar_/getting-started-with-django-beginner-summary-with-pycharm-jhh"&gt;https://dev.to/yusra_muktar_/getting-started-with-django-beginner-summary-with-pycharm-jhh&lt;/a&gt;&lt;br&gt;
its step by step about getting started with django&lt;/p&gt;

&lt;p&gt;I named my project config and arusha and devcode are my apps&lt;br&gt;
under config you can see wide settings and configurations&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9d3xy27s3raje6kne211.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9d3xy27s3raje6kne211.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;config/&lt;br&gt;
    &lt;strong&gt;init&lt;/strong&gt;.py&lt;br&gt;
    settings.py&lt;br&gt;
    urls.py&lt;br&gt;
    asgi.py&lt;br&gt;
    wsgi.py&lt;br&gt;
Specifications of what each of them does:) &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;init.py: A file that tells Python that all files in the directory should be considered a Python package. Without this file, we cannot import files from another directory which we will be doing a lot of in Django!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;settings.py: Contains all the project’s settings and configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;urls.py: The URL declarations for the project are a “table of contents” of your Django-powered site.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;asgi.py: allows for an optional Asynchronous Server Gateway Interface(ASGI) to be run&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;wsgi.py: An entry point for Web Server Gateway Interface(WSGI) compatible web servers to serve your project. It helps Django serve our eventual web pages.&lt;/p&gt;

&lt;p&gt;TEMPLATES&lt;br&gt;
 A template in Django is just an HTML file with special placeholders for dynamic data.&lt;br&gt;
A template decides how the webpage looks — the design and layout.&lt;br&gt;
The view sends data to the template, and the template displays it nicely.&lt;br&gt;
In the picture below you can see the file structure too,you then open a html file and insert your codes&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx46pqtbq17c92gfm6ftk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx46pqtbq17c92gfm6ftk.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will talk about views in details below and how we modify it and add codes&lt;br&gt;
views are what connect your templates to your project.&lt;br&gt;
Views decide which template to use, and what data to show in it.&lt;/p&gt;

&lt;p&gt;VIEWS&lt;br&gt;
Django views are Python functions that take http requests and return http response, like HTML documents.&lt;br&gt;
So, views.py is your project’s brain, deciding what to do when someone clicks something or visits a page.&lt;br&gt;
Views are usually put in a file called views.py located on your app's folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vxeqf8l5bxffl98i7wa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vxeqf8l5bxffl98i7wa.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if you want to execute a view, we must call it via a URL&lt;br&gt;
Create a file named urls.py in the same folder as the views.py file, and type code in it&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9wl533ouqki2u301ypn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9wl533ouqki2u301ypn.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The urls.py file you just created is specific for the arusha application. We have to do some routing in the root directory config as well.&lt;br&gt;
I will show you everything lemme first stick to my flow so that you dont get confused &lt;br&gt;
There is a file called urls.py on config folder, open that file and add the include module in the import statement, and also add a path() function in the urlpatterns[] list like this.....&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnr8ljymz1tvdmisdms0r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnr8ljymz1tvdmisdms0r.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
I am using windows and pycharm as my IDE&lt;br&gt;
run the server by executing this command in terminal&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw1rn5kyrc00x0zwryg4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw1rn5kyrc00x0zwryg4.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
and in the browser it should show you/display&lt;br&gt;
A browser displays the final webpage generated from the HTML code inside the Django template. Whatever you put in the template (like text, images, or headings) appears in the user’s browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhrs5m26mgkkty2o2ugzb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhrs5m26mgkkty2o2ugzb.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DJANGO MODELS!!!&lt;br&gt;
In Django, a model is what defines your database table. It’s basically a python class that maps to a single table in your database&lt;br&gt;
A model will contain all the essential fields and behaviors of the data you’re storing.&lt;/p&gt;

&lt;p&gt;A Model defines the structure of your database tables. It’s a Python class that maps to a single table in your database.&lt;/p&gt;

&lt;p&gt;You can learn more on Models on Django’s documentation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.djangoproject.com/en/5.2/topics/db/models/" rel="noopener noreferrer"&gt;https://docs.djangoproject.com/en/5.2/topics/db/models/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>django</category>
    </item>
    <item>
      <title>Getting started with Django: Beginner summary with PyCharm</title>
      <dc:creator>Yusra Muktar</dc:creator>
      <pubDate>Mon, 30 Jun 2025 19:37:34 +0000</pubDate>
      <link>https://dev.to/yusra_muktar_/getting-started-with-django-beginner-summary-with-pycharm-jhh</link>
      <guid>https://dev.to/yusra_muktar_/getting-started-with-django-beginner-summary-with-pycharm-jhh</guid>
      <description>&lt;p&gt;FIRST PART:&lt;br&gt;
make sure you have pycharm installed in your machine,open pycharm and start a new project give the folder a name and a location that you know you can easily find&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4ah5gdrwyeskapdc80y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4ah5gdrwyeskapdc80y.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One big advantage of PyCharm is that it creates a virtual environment (venv) automatically when you make a new project — you just choose the Python version and PyCharm sets up everything for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou9f4chh8fx0mwjnhisf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou9f4chh8fx0mwjnhisf.jpg" alt="Image description" width="605" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;im gonna activate venv, pycharm comes w a venv automatically as stated above:)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkmqe2inzbr6897btt1mh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkmqe2inzbr6897btt1mh.jpg" alt="Image description" width="800" height="215"&gt;&lt;/a&gt;&lt;br&gt;
 i have activated venv and started my project i called it config&lt;br&gt;
under the project you created it should show you the following&lt;br&gt;
&lt;em&gt;init&lt;/em&gt;_.py&lt;br&gt;
 asgi.py&lt;br&gt;
 settings.py&lt;br&gt;
 urls.py&lt;br&gt;
 wsgi.py&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0thce93lxmgfyimsstz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0thce93lxmgfyimsstz.png" alt="Image description" width="633" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;so next step is creating an app&lt;br&gt;
An app is a web application that has a specific meaning in your project, like a home page, a contact form, or a members database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3awbqlox6g6wr8drt9nk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3awbqlox6g6wr8drt9nk.jpg" alt="Image description" width="765" height="61"&gt;&lt;/a&gt;&lt;br&gt;
i decided to call my app "arusha" you can call it whatever...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpg3qpy6ogy648yiftr7h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpg3qpy6ogy648yiftr7h.jpg" alt="Image description" width="445" height="379"&gt;&lt;/a&gt;&lt;br&gt;
 went ahead and created another app named it "devcode"&lt;br&gt;
 we are gonna then register the apps,Open config/settings.py&lt;br&gt;
Find INSTALLED_APPS and add your app there &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsixgd4vha4037oy7xp79.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsixgd4vha4037oy7xp79.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;built a basic Django project with two separate apps (arusha and devcode).&lt;br&gt;
Each app has its own view (Python function) and its own HTML template (web page).we created the separate templates,check the structure its clean and not confusing at all.&lt;br&gt;
When you have more than one app, Django can get confused if multiple apps have a template called index.html.&lt;/p&gt;

&lt;p&gt;Solution: use app-named subfolders in templates:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuie90glrvs204n3jbfo0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuie90glrvs204n3jbfo0.jpg" alt="Image description" width="760" height="997"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;next is creating views.py for each template &lt;br&gt;
first template&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwuxr5oejw2qnu9903ns0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwuxr5oejw2qnu9903ns0.jpg" alt="Image description" width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;second template for devcode&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfpbkvpb2hat39x68aed.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfpbkvpb2hat39x68aed.jpg" alt="Image description" width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and adding urls.py for each app,later on we will hook  both apps into main projects urls&lt;br&gt;
i ran into a problem regarding urls but managed to fix it...small issue like where you place the url might be the reason your server does not run so be careful.&lt;br&gt;
You connected them using URLs, so you can visit each page in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2j3imsmmmz69esr91h0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2j3imsmmmz69esr91h0i.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8v4pldzagorxh3qwvmvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8v4pldzagorxh3qwvmvv.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fck0eoy0daqb8olmsa85z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fck0eoy0daqb8olmsa85z.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this is gonna drive you crazy if you are not careful..&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkm2qypl4uxtpe0agvo5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkm2qypl4uxtpe0agvo5w.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ran server works &lt;br&gt;
pro tip though&lt;br&gt;
Remember: In Django, your views.py lives in the app folder, and your HTML files live in the templates folder. Keep your structure clean to avoid errors!&lt;br&gt;
In this mini project, I set up a Django project with two separate apps. Each app has its own view and its own template. I linked them with URL paths so I can open each page in the browser. This is how Django helps you organize big websites into smaller, reusable pieces&lt;br&gt;
And just like that, my first Django project with multiple apps runs in the browser! I learned how to create apps, views, templates, and connect everything step by step — all inside PyCharm, which made setup smooth and beginner-friendly.&lt;/p&gt;

</description>
      <category>django</category>
      <category>pycharm</category>
    </item>
    <item>
      <title>Version Control With Git and Github (simple quick summary)</title>
      <dc:creator>Yusra Muktar</dc:creator>
      <pubDate>Fri, 27 Jun 2025 11:58:15 +0000</pubDate>
      <link>https://dev.to/yusra_muktar_/version-control-with-git-and-github-simple-quick-summary-2038</link>
      <guid>https://dev.to/yusra_muktar_/version-control-with-git-and-github-simple-quick-summary-2038</guid>
      <description>&lt;p&gt;What is Version control?&lt;br&gt;
version control also known as source control is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time&lt;br&gt;
version control systems help software teams work faster and smarter.&lt;br&gt;
Also helps in managing and protecting source code,compares earlier versions of codes to help fix mistake while reducing disruption&lt;/p&gt;

&lt;p&gt;Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members.&lt;/p&gt;

&lt;p&gt;Software developers working in teams are continually writing new source code and changing existing source code. The code for a project, app or software component is typically organized in a folder structure or "file tree". One developer on the team may be working on a new feature while another developer fixes an unrelated bug by changing code, each developer may make their changes in several parts of the file tree.&lt;/p&gt;

&lt;p&gt;KEY POINTS:&lt;br&gt;
Keeps a history of every change made.&lt;/p&gt;

&lt;p&gt;Lets you revert to previous versions if something breaks.&lt;/p&gt;

&lt;p&gt;Supports collaboration, so many people can work on the same files safely.&lt;/p&gt;

&lt;p&gt;WHAT IS GIT?&lt;/p&gt;

&lt;p&gt;Git is a free, open-source version control system. It tracks changes to your code so you can:&lt;/p&gt;

&lt;p&gt;Revert to an earlier version if you break something.&lt;/p&gt;

&lt;p&gt;Work on new features in separate branches without messing up the main code.&lt;/p&gt;

&lt;p&gt;See who changed what, when, and why.&lt;/p&gt;

&lt;p&gt;Git is the most popular version control system today.&lt;/p&gt;

&lt;p&gt;WHAT IS GITHUB??&lt;/p&gt;

&lt;p&gt;GitHub is an online platform that hosts your Git repositories. It makes teamwork easy:&lt;/p&gt;

&lt;p&gt;Share your code with others.&lt;/p&gt;

&lt;p&gt;Collaborate through pull requests, issues, and code reviews.&lt;/p&gt;

&lt;p&gt;Showcase your projects to potential employers or clients.&lt;br&gt;
Long story short Version control systems help developers track and manage changes to code. Git is the most popular version control system, letting you work safely and flexibly on your computer. GitHub takes Git a step further by providing an online home where you can store your Git repositories, collaborate with others, and share your work with the world.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setting Up Git, Python, WSL, Docker, and GitHub SSH</title>
      <dc:creator>Yusra Muktar</dc:creator>
      <pubDate>Wed, 25 Jun 2025 04:58:15 +0000</pubDate>
      <link>https://dev.to/yusra_muktar_/setting-up-git-python-wsl-docker-and-github-ssh-4fcp</link>
      <guid>https://dev.to/yusra_muktar_/setting-up-git-python-wsl-docker-and-github-ssh-4fcp</guid>
      <description>&lt;p&gt;As part of our Django Bootcamp, we are required to set up our local development environment with the following tools:(depending w the type of Operating system you are using) I am using windows but you can opt for other options..again basic logic depends w the type of OS you are using&lt;/p&gt;

&lt;p&gt;LIST OF INSTALLATION REQUIRED&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;A text editor (VS Code or PyCharm)&lt;/li&gt;
&lt;li&gt;WSL (for Windows users)&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;GitHub SSH configuration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a step-by-step guide on how I set up my local development environment from scratch on Windows for my Django Bootcamp. If you’re just getting started or want to double-check your setup, this might help.&lt;/p&gt;

&lt;p&gt;1.Python 3.10+&lt;br&gt;
How I Installed It:&lt;br&gt;
I visited &lt;a href="https://www.python.org/" rel="noopener noreferrer"&gt;https://www.python.org/&lt;/a&gt; and downloaded the latest Python 3.10.0 installer for Windows.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlht4bbu5u8z5a7g5xvz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlht4bbu5u8z5a7g5xvz.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
During installation, I made sure to &lt;strong&gt;check the box&lt;/strong&gt; that says **“Add Python to PATH.”&lt;br&gt;
After it was done, I opened Command Prompt and ran:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fei4jw0r14fpzityisr19.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fei4jw0r14fpzityisr19.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
python --version&lt;br&gt;
&lt;code&gt;Python 3.10.0&lt;/code&gt;, which means I was good to go!&lt;/p&gt;

&lt;p&gt;Python is the programming language Django is built on.&lt;/p&gt;

&lt;p&gt;2.Git&lt;br&gt;
Git is a version control system that helps developers track changes in their code over time, collaborate with others, and manage project history.&lt;br&gt;
Downloaded Git from &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvkqgxdv3n8i15ii0g9s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvkqgxdv3n8i15ii0g9s.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Installed with default settings (I left most options as-is).&lt;br&gt;
To confirm it worked, I ran:&lt;br&gt;
bash&lt;br&gt;
git --version&lt;br&gt;
git version 2.47.0.windows.1&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwqb4hoyll6emiu165vf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwqb4hoyll6emiu165vf.jpg" alt="Image description" width="800" height="580"&gt;&lt;/a&gt;&lt;br&gt;
Version control system and its importance:&lt;br&gt;
Tracks code changes over time&lt;br&gt;
Makes collaboration with others easier&lt;br&gt;
Lets you roll back to previous versions if needed&lt;/p&gt;

&lt;p&gt;3.Visual Studio Code (Text Editor)&lt;br&gt;
VS Code is lightweight and great for Python/Django development.&lt;br&gt;
Where you write and edit your code.&lt;br&gt;
it's important cause you Syntax highlighting, auto-complete, and error detection&lt;br&gt;
Tools like VS Code improve speed and productivity&lt;br&gt;
How Installed It:&lt;br&gt;
Downloaded from &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;code.visualstudio.com&lt;/a&gt;&lt;br&gt;
Or you can install it from microsoft store by typing "Vs Code"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uwaiz1o5iqpvbthb621.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uwaiz1o5iqpvbthb621.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After installation, I installed a python extension:&lt;/p&gt;

&lt;p&gt;4.WSL (Windows Subsystem for Linux)&lt;br&gt;
WSL is a feature in Windows that allows you to run a Linux environment directly inside Windows, without needing a virtual machine or dual boot setup.&lt;br&gt;
Allows you to run a Linux environment inside Windows.&lt;br&gt;
It's important cause many development tools (like Django, pip, Linux-based commands) work better in a Unix-like environment&lt;/p&gt;

&lt;p&gt;Helps avoid compatibility issues when working with Docker and Django&lt;/p&gt;

&lt;p&gt;How I Set It Up:&lt;/p&gt;

&lt;p&gt;Since I’m using Windows, WSL helps me run Linux commands and tools.&lt;/p&gt;

&lt;p&gt;Opened PowerShell as Administrator&lt;br&gt;
Ran the command:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
wsl --install&lt;/p&gt;

&lt;p&gt;This automatically installed &lt;em&gt;Ubuntu&lt;/em&gt;&lt;br&gt;
Then restart your laptop&lt;br&gt;
After restarting my laptop, I launched Ubuntu, set a username and password, and it was ready to use.&lt;/p&gt;

&lt;p&gt;To confirm WSL is working:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
wsl --version&lt;/p&gt;

&lt;p&gt;WSL installed successfully.&lt;/p&gt;

&lt;p&gt;5.Docker&lt;br&gt;
Docker is a platform that allows developers to build, run, and manage applications inside containers.&lt;br&gt;
 Creates isolated environments (containers) for your projects.&lt;br&gt;
Ensures the app runs the same on any machine&lt;br&gt;
Useful for managing dependencies, databases, and deployment&lt;br&gt;
Perfect for team collaboration and testing&lt;br&gt;
How I Installed It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Downloaded Docker Desktop for Windows &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;https://www.docker.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmq0yoo7c62bujqzxh66k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmq0yoo7c62bujqzxh66k.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4fre4m8820zp10nnrz4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4fre4m8820zp10nnrz4.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installed it and followed the setup prompts.&lt;/li&gt;
&lt;li&gt;Restarted my machine to complete the installation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To confirm it worked:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
docker --version&lt;br&gt;
Docker version 28.1.1, build 4eba377&lt;/p&gt;

&lt;p&gt;Docker is now running on my system.&lt;/p&gt;

&lt;p&gt;6.GitHub SSH Configuration&lt;br&gt;
SSH keys (Secure Shell keys) are a pair of cryptographic keys used to create a secure connection between your computer and GitHub without needing a username or password every time.&lt;/p&gt;

&lt;p&gt;Steps I Followed:&lt;br&gt;
(ensure that you have a github account) &lt;br&gt;
configure details to git...my Github username is yusra1234567 and email based on Github is &lt;a href="mailto:yusramuktar959@gmail.com"&gt;yusramuktar959@gmail.com&lt;/a&gt;&lt;br&gt;
by opening bash and using the following commands &lt;/p&gt;

&lt;p&gt;git config --global user.name "yusra1234567"&lt;/p&gt;

&lt;p&gt;git config --global user.email "&lt;a href="mailto:yusramuktar959@gmail.com"&gt;yusramuktar959@gmail.com&lt;/a&gt;"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate a new SSH key
(still in your bash)
ssh-keygen -t rsa -b 4096 -C "&lt;a href="mailto:yusramuktar959@gmail.com"&gt;yusramuktar959@gmail.com&lt;/a&gt;"
then it will generate a public and private key pairs
Add public key generated to Github
Go to Github and log in...settings and go to SSH key paste the key there and test the connection by running&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ssh -T &lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;&lt;br&gt;
if everything is set up correctly you will see&lt;br&gt;
Hi yusra1234567! You've successfully authenticated, but GitHub does not provide shell access.&lt;br&gt;
if you see this it worked!!&lt;/p&gt;

&lt;p&gt;Everything is set up and ready to go. With this environment, I’m prepared to dive deep into Django development during this bootcamp. I’ll be sharing more as I go.&lt;/p&gt;

&lt;p&gt;If you’re setting up for the first time and something breaks, don’t panic — try again or ask for help. You got this&lt;br&gt;
Might be a small issue and do research.&lt;/p&gt;

</description>
      <category>github</category>
      <category>python</category>
      <category>git</category>
      <category>django</category>
    </item>
  </channel>
</rss>
