Django--Learning and understanding

  1. Create a virtual environment in anaconda

  2. Installing Django

    复制代码
    pip install django

    Django is a Python web framework that provides many features such as ORM, authentication, forms, templates, etc. It can help you develop web applications faster and easier.

  3. Installing the DRF

    复制代码
    pip install djangorestframework

    DRF is a powerful and flexible Django-based RESTful framework that provides many tools and libraries to help you quickly develop web applications based on RESTful apis.

  4. Install Django-Filter

    复制代码
    pip install django-filter

    Description::Integration with DRF --- django-filter 23.2 documentation

    Django-filter is a Django-based library that provides a simple, flexible way to Filter sets of Django model queries. Django-Filter's API allows developers to use simple query expressions, build and apply complex filters, and select and exclude data in query sets.

    Djangos Filter provides a more elegant API specification through its integration with DRF Spectacular, which supports data filtering and querying as expressed by the OpenAPI specification.

  5. Installing Django Spectacular

    复制代码
    pip install drf_spectacular

    Description: DRF Spectacular is the OpenAPI specification tool for DRF. It automatically builds and generates OpenAPI specification documentation, and provides convenient API testing tools that make it easier to create, test, and maintain RESTful apis. It also supports integration with Django Filter, which allows you to filter query data by URL parameters.

Once django is installed, create a project using Django-admin, the tool that comes with Django:

复制代码
django-admin startproject django_news

Go to cd django_news.

复制代码
django_news
├── django_news              // 项目全局文件目录
│   ├── __init__.py
│   ├── settings.py          // 全局配置
│   ├── urls.py              // 全局路由
│   └── wsgi.py              // WSGI服务接口
└── manage.py                // 项目管理脚本

To run a Development Server using manage.py:

复制代码
python manage.py runserver

Implement custom apps

Let's create our first custom App, named news:

复制代码
python manage.py startapp news

The resulting news application folder structure looks like this:

复制代码
news                     // news 应用目录
├── __init__.py          // 初始化模块
├── admin.py             // 后台管理配置
├── apps.py              // 应用配置
├── migrations           // 数据库迁移文件目录
│   └── __init__.py      // 数据库迁移初始化模块
├── models.py            // 数据模型
├── tests.py             // 单元测试
└── views.py             // 视图

The view function you just wrote needs to be accessible to the system. So first implement the routing table of the sub-application news and create the news/urls.py file as follows:

复制代码
from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name='index'),
]

Implement the first Django template

Let's implement our first Django template. Create a templates directory in the news directory, then create a news directory in the templates directory, and then create the index.html file in the inner news directory:

复制代码
mkdir -p news/templates/news
touch news/templates/news/index.html

Because Djangos template lookup mechanism collects all the templates in the application together, if two template names conflict, one of the templates will not be accessible correctly. If it is placed in the news subfolder, it can be accessed through news/index.html, and conflicts are avoided through the namespace mechanism.

The code for the template is as follows:

复制代码
{% if news_list %}
  <ul>
  {% for elem in news_list %}
    <li>
      <h3>{{ elem.title }}</h3>
      <p>{{ elem.content }}</p>
    </li>
  {% endfor %}
  </ul>
{% else %}
  <p>暂无新闻</p>
{% endif %}

Once defined, run the following command to create the migration file:

复制代码
python manage.py makemigrations

The news/migrations/0001_initial.py migration script was successfully automatically created. Then proceed to the database migration:

复制代码
python manage.py migrate

After the database migration is complete, create a super user for logging in to the background management.

复制代码
python manage.py createsuperuser

Enter the user name and password as prompted. Interview localhost:8000/admin,Enter the login page of the background system:

Configure the background management interface

We did not implement the background management interface for the news application. Enter the following code in news/admin.py:

Enter the background management system again, you can see the news application and Post model created just now.

Adds a data query to the view

Finally, we add the code to the view to query from the database:

复制代码
from django.shortcuts import render

from .models import Post


def index(request):
    context = { 'news_list': Post.objects.all() }
    return render(request, 'news/index.html', context=context)

Reference article

https://zhuanlan.zhihu.com/p/98788776

相关推荐
JavaGuide8 小时前
84.5K+ Star!这个开源编程 Agent 控制台,能统一管理 Codex、Claude Code,DeepSeek Harness 也能接入
后端·github
测试老哥8 小时前
Pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系
自动化测试·软件测试·python·测试工具·测试用例·pytest·职场发展
swipe9 小时前
RabbitMQ 实战:AI Agent 里异步处理的标配方案(手把手 + 4 种交换机全解析)
后端·面试·langchain
Buke..9 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
JacksonMx9 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
神奇小汤圆9 小时前
30张图,搞懂分布式追踪系统
后端
W_326009 小时前
Python-OpenCV HSV颜色空间与inRange颜色分割:按颜色提取目标物体
图像处理·人工智能·python·opencv·机器学习
量化小c9 小时前
一行代码查 BTCUSDT 和 AAPL 最新价?QuantDash 统一多市场实时行情接口实战
后端·算法·github
沙盘客9 小时前
AFSIM 官方案例库全景与解读方法论
c++·经验分享·后端
Buke..10 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(上):Frida 反调试绕过与 unidbg 调用
java·开发语言·爬虫·python·安卓