Django基础入门教程

目录

  • Django基础入门教程
    • 前言
    • 1. Python基础
      • 1.1 Python语法基础
      • 1.2 数据结构
        • 列表
        • 字典
        • 集合
        • 元组
      • 1.3 函数和模块
        • 函数
        • 模块
      • 1.4 类和对象
      • 1.5 异常处理
      • 1.6 文件操作
      • 1.7 Python虚拟环境的使用
    • 2. Django安装和项目创建
      • 2.1 安装Python和Django
      • 2.2 创建Django项目和应用
      • 2.3 Django项目结构解析
    • 3. Django模型(Models)
      • 3.1 数据库和ORM概念
      • 3.2 定义模型和字段
      • 3.3 数据库迁移操作
      • 3.4 数据库查询和管理
    • 4. Django视图和模板(Views and Templates)
      • 4.1 请求和响应对象
      • 4.2 视图函数和类视图
        • 视图函数
        • 类视图
      • 4.3 模板语言和继承
      • 4.4 URL配置和视图的关联
    • 5. Django表单(Forms)
      • 5.1 表单的创建和使用
      • 5.2 表单验证
      • 5.3 表单与模型的集成
    • 6. Django Admin
      • 6.1 管理界面的定制
      • 6.2 管理界面的扩展
      • 6.3 管理界面的权限控制
    • 结论

Django基础入门教程

前言

Django是一个强大的Web框架,能够帮助开发者快速构建高效、可扩展的Web应用。在本教程中,我们将详细介绍Django的基础知识,从Python基础开始,到Django的各种核心功能,内容适合需要系统学习Django的人员。


1. Python基础

在学习Django之前,掌握Python的基本概念至关重要。我们将从以下几个方面入手:

1.1 Python语法基础

Python作为一种高级语言,其语法简洁易懂。以下是一些基本语法。

# 变量定义
name = "Alice"
age = 25

# 条件语句
if age > 18:
    print("Adult")
else:
    print("Minor")

# 循环
for i in range(5):
    print(i)

1.2 数据结构

列表
fruits = ['apple', 'banana', 'cherry']
print(fruits[0])  # 输出: apple
字典
person = {'name': 'Alice', 'age': 25}
print(person['name'])  # 输出: Alice
集合
fruits_set = {'apple', 'banana', 'cherry'}
print('banana' in fruits_set)  # 输出: True
元组
coordinates = (10.0, 20.0)
print(coordinates[0])  # 输出: 10.0

1.3 函数和模块

函数
def greet(name):
    return f"Hello, {name}!"

print(greet("Alice"))  # 输出: Hello, Alice!
模块
# 文件名: my_module.py
def add(x, y):
    return x + y

# 引用模块
import my_module
result = my_module.add(5, 3)
print(result)  # 输出: 8

1.4 类和对象

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        return f"{self.name} says woof!"

my_dog = Dog("Buddy")
print(my_dog.bark())  # 输出: Buddy says woof!

1.5 异常处理

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Cannot divide by zero!")

1.6 文件操作

# 写入文件
with open('test.txt', 'w') as file:
    file.write("Hello, World!")

# 读取文件
with open('test.txt', 'r') as file:
    content = file.read()
    print(content)  # 输出: Hello, World!

1.7 Python虚拟环境的使用

创建和管理Python虚拟环境可以避免库之间的冲突。

# 创建虚拟环境
python -m venv myenv

# 激活虚拟环境
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate

# 安装Django
pip install django

2. Django安装和项目创建

2.1 安装Python和Django

确保您已经安装了Python(版本3.6及以上)。可以通过以下命令安装Django:

pip install django

2.2 创建Django项目和应用

创建Django项目的命令如下:

django-admin startproject myproject
cd myproject
django-admin startapp myapp

2.3 Django项目结构解析

创建项目后,您会看到以下文件和文件夹结构:

myproject/
    manage.py
    myproject/
        settings.py
        urls.py
        wsgi.py
    myapp/
        migrations/
        admin.py
        apps.py
        models.py
        tests.py
        views.py
  • manage.py: 用于管理Django项目的命令行工具。
  • settings.py: 项目的设置文件。
  • urls.py: URL路由配置文件。
  • wsgi.py: 与Web服务器的接口。

3. Django模型(Models)

3.1 数据库和ORM概念

Django通过模型(Model)与数据库交互,使用ORM(Object-Relational Mapping)将数据库中的表映射为Python类。

3.2 定义模型和字段

myapp/models.py中定义模型:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

3.3 数据库迁移操作

创建表的步骤如下:

  1. 生成迁移文件:

    python manage.py makemigrations
    
  2. 应用迁移:

    python manage.py migrate
    

3.4 数据库查询和管理

可以通过Django的shell进行数据库操作:

python manage.py shell

创建和查询数据:

from myapp.models import Article

# 创建文章
article = Article(title="My First Article", content="This is the content.")
article.save()

# 查询文章
articles = Article.objects.all()
for article in articles:
    print(article.title)

4. Django视图和模板(Views and Templates)

4.1 请求和响应对象

每当用户访问网页时,Django会创建一个请求(Request)对象,并返回一个响应(Response)对象。

4.2 视图函数和类视图

myapp/views.py中创建视图:

视图函数
from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("Hello, World!")
类视图
from django.views import View

class HelloWorldView(View):
    def get(self, request):
        return HttpResponse("Hello, World from Class-Based View!")

4.3 模板语言和继承

Django使用模板来渲染HTML,可以创建模板文件夹来存放这些模板。


DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hellotitle>
head>
<body>
    <h1>{{ message }}h1>
body>
html>

在视图中渲染模板:

from django.shortcuts import render

def hello_template(request):
    return render(request, 'hello.html', {'message': 'Hello, Template!'})

4.4 URL配置和视图的关联

myproject/urls.py中配置URL:

from django.contrib import admin
from django.urls import path
from myapp.views import hello_world, HelloWorldView, hello_template

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', hello_world),
    path('hello-class/', HelloWorldView.as_view()),
    path('hello-template/', hello_template),
]

5. Django表单(Forms)

5.1 表单的创建和使用

myapp/forms.py中定义表单:

from django import forms

class ArticleForm(forms.ModelForm):
    class Meta:
        model = Article
        fields = ['title', 'content']

5.2 表单验证

在视图中处理表单:

from django.shortcuts import render, redirect
from .forms import ArticleForm

def create_article(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('article_list')
    else:
        form = ArticleForm()
    return render(request, 'create_article.html', {'form': form})

5.3 表单与模型的集成

Django的模型表单可以轻松地和数据库表进行交互,以上形式就是一个好的示范。


6. Django Admin

6.1 管理界面的定制

Django Admin是一个强大的自动生成的管理界面。我们可以自定义它来满足我们的需要。

首先,需要在myapp/admin.py中注册模型:

from django.contrib import admin
from .models import Article

admin.site.register(Article)

6.2 管理界面的扩展

您可以通过自定义Admin类来添加额外的功能:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'created_at')

admin.site.register(Article, ArticleAdmin)

6.3 管理界面的权限控制

Django Admin默认具有权限管理功能,您可以通过用户组和权限来控制访问。


结论

通过本教程,您已经了解了创建一个基础Django应用所需的核心知识,包括Python基础、Django安装与项目创建、模型、视图、模板、表单和Admin管理界面的定制。随着经验的积累,您可以进一步探索Django的高级特性,如RESTful API、缓存管理和异步任务等。

希望本教程对您入门Django有所帮助,感谢您的阅读!

你可能感兴趣的:(Django,django,开发语言,python,经验分享,后端)