Django入门

Django 入门

  • URL:统一资源定位符(Uniform Resource Locator),它是一种在互联网上定位资源的方式。该资源可以是一个网页、一张图片、一个视频、一个 PDF 文件等等。
  • HTTP:超文本传输协议(Hypertext Transfer Protocol)。当用户在浏览器(前端)中输入一个网站地址(URL)时,会向该网站的后端(Web 服务器)发送一个请求。服务器处理这个请求后返回响应。这种数据交换方式由 HTTP 定义,它规定了客户端和服务器之间如何进行通信。
  • HTML:超文本标记语言(Hypertext Markup Language)。网站的后端有两种方式可以回应客户端:第一种是生成一个 HTML 格式的页面并将其返回给客户端;第二种是只返回页面所需的数据,由客户端来构建页面。后者被认为是更佳的实践方式。
  • API:应用程序编程接口(Application Programming Interface)。如果我们把生成网页的责任交给客户端,那么服务器就变成了数据的入口。在服务器端,我们可以提供一些“端点”(endpoints),供客户端通过这些接口获取各种数据。这类端点被称为 API。

Setup Environment

% python --version
Python 3.12.9
% python -m venv .venv
% source .venv/bin/activate
% pip install Django

Creat Django project

% django-admin startproject myproject
% cd myproject
# start server on specific port 8001
% python manage.py runserver 8001
  • project structure

      .
      ├── myproject
      ├── db.sqlite3
      ├── manage.py
      └── myproject
          ├── __init__.py
          ├── asgi.py
          ├── settings.py
          ├── urls.py
          ├── views.py
          └── wsgi.py
    
  • start page
    在这里插入图片描述

Create first app

% python manage.py startapp myapp

Register app in settings:

  • myproject/settings.py

      INSTALLED_APPS = [
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          'myapp',  # Include your app here
      ]
    
  • project structure:

      .
      ├── myproject
      │   ├── db.sqlite3
      │   ├── manage.py
      │   ├── myapp
      │   │   ├── __init__.py
      │   │   ├── admin.py
      │   │   ├── apps.py
      │   │   ├── migrations
      │   │   │   ├── __init__.py
      │   │   ├── models.py
      │   │   ├── tests.py
      │   │   ├── urls.py
      │   │   └── views.py
      │   └── myproject
      │       ├── __init__.py
      │       ├── asgi.py
      │       ├── settings.py
      │       ├── urls.py
      │       ├── views.py
      │       └── wsgi.py
    

Route URLs to views

  • urls.py: URL Configuration.(用来配置URL映射的文件, 将URL映射到views functions)
  • views.py: Defined functions/classes in views takes an HTTP request as an argument and returns an HTTP response.(接收web请求,返回web响应)
views.py samples in app
Function Based Views
  • myapp/views.py: A function view takes a http request and returns a plain text response.

      from django.http import HttpResponse
      def hello(request):
          return HttpResponse('Hello, world! This is the hello page of myapp.')
    
Class Based Views
  • myapp/views.py: A class view takes a http request and returns a plain text response.

      from django.views.generic import TemplateView
      class MyView(TemplateView):
          template_name = 'hello.html'
    
  • myapp/templates/hello.html

      <!DOCTYPE html>
      <html>
      <head>
          <title>Home page of myapp</title>
      </head>
      <body>
          <h1>myapp hello world</h1>
      </body>
      </html>
    
urls.py patterns in app
  1. For each app, create a urls.py to map url to view

  2. Mapping url path to view function myapp/urls.py:

     from django.urls import path
     from . import views
    
     urlpatterns = [
         path('hello/', views.hello, name='myapp_hello'), # mapping to function view
         path('', views.MyView.as_view(), name='myapp_myview'), # mapping to class view
     ]
    
  • 'hello/', '': str: URL path
  • views.hello, views.MyView.as_view(): view function which returns Http Response
  • name='xxx': alias for the path, it’s used for reference in html
urls.py in main project

myproject/urls.py:

    from django.contrib import admin
    from django.urls import path, include

    urlpatterns = [
        path('admin/', admin.site.urls),
        # Include the URLs from myapp
        path('myapp/', include('myapp.urls')), 
    ]

start server:

在这里插入图片描述


在这里插入图片描述


Tips for debugging Django in VSCode:

https://blog.csdn.net/heyetiantian0611/article/details/147702798?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值