Python-Django入手

18.1 建立项目

18.1.1 制定规范

  • 定义项目目标:明确应用的核心功能

  • 创建项目文档:用README.md记录技术栈和开发流程

  • 规划目录结构:建议遵循Django官方推荐的项目布局

18.1.2 建立虚拟环境

在命令行执行:

python 复制代码
python -m venv ll_env

说明:

  • venv是Python内置虚拟环境模块

  • ll_env是自定义环境名称,隔离项目依赖

18.1.3 激活虚拟环境

Windows系统:

ll_env\Scripts\activate.bat

Linux/macOS:

source ll_env/bin/activate

激活后命令提示符前显示(环境名)表示成功

18.1.4 安装Django

在激活的虚拟环境中执行:

python 复制代码
pip install django==4.2.0

说明:

  • 指定版本号可保证环境一致性

  • pip是Python包管理器,自动处理依赖关系

18.1.5 创建Django项目

执行命令:

django-admin startproject learning_log .

说明:

  • startproject是项目管理命令

  • 末尾的.表示在当前目录创建项目

  • 生成核心文件:settings.py, urls.py, wsgi.py等

18.1.6 创建数据库

执行迁移命令:

python 复制代码
python manage.py migrate

功能说明:

  • 生成默认的SQLite数据库文件db.sqlite3

  • 创建Django内置应用(如admin,auth)的数据库表

18.1.7 查看项目

启动开发服务器:

python 复制代码
python manage.py runserver

访问http://127.0.0.1:8000

出现火箭图标页面表示项目创建成功

18.2 创建应用程序

18.2.1 定义模型

在models.py中添加:

python 复制代码
from django.db import models



class Topic(models.Model):

    text = models.CharField(max_length=200)

    date_added = models.DateTimeField(auto_now_add=True)



    def __str__(self):

        return self.text

语法解析:

  • 继承models.Model创建数据模型

  • CharField定义字符类型字段,必须指定max_length

  • DateTimeField的auto_now_add参数自动设置创建时间

  • __str__方法定义对象显示格式

18.2.2 激活模型

修改settings.py的INSTALLED_APPS:

python 复制代码
INSTALLED_APPS = [

    ...

    'learning_logs',

]

执行迁移命令:

python manage.py makemigrations learning_logs

python manage.py migrate

说明:

  • makemigrations生成迁移文件

  • migrate应用数据库变更

18.3 创建页面

18.3.2 编写视图

示例视图函数:

python 复制代码
from django.shortcuts import render



def index(request):

    return render(request, 'learning_logs/index.html')

功能说明:

  • request参数包含HTTP请求信息

  • render函数将模板渲染为HTML响应

  • 模板路径遵循app/templates/app/结构

18.3.3 编写模板

创建templates/learning_logs/index.html:

html 复制代码
<html>

    <head>

        <title>Learning Log</title>

    </head>

    <body>

        <h1>Learning Log Homepage</h1>

        <p>Welcome to your knowledge base.</p>

    </body>

</html>

模板语法说明:

  • 使用标准HTML语法

  • 后续可通过Django模板语言添加动态内容

18.4.1 模板继承

基础模板base.html:

html 复制代码
<html>

    <head>

        <title>{% block title %}{% endblock %}</title>

    </head>

    <body>

        {% block content %}

        {% endblock %}

    </body>

</html>

子模板使用:

html 复制代码
{% extends "learning_logs/base.html" %}



{% block title %}Topics{% endblock %}



{% block content %}

    <ul>

    {% for topic in topics %}

        <li>{{ topic.text }}</li>

    {% endfor %}

    </ul>

{% endblock %}

继承机制说明:

  • extends声明继承关系

  • block定义可替换内容区域

  • 使用模板标签{% for %}实现循环逻辑

18.5 小结

本章完整流程:

  1. 创建虚拟环境隔离依赖

  2. 安装Django并初始化项目

  3. 定义数据模型和业务逻辑

  4. 通过视图函数处理请求

  5. 使用模板系统渲染页面

  6. 通过URL配置路由请求

关键命令总结:

  • python manage.py startapp [应用名] 创建新应用

  • python manage.py createsuperuser 创建管理员

  • python manage.py shell 进入Django交互环境

注意:所有代码块中的缩进使用4个空格,Django严格要求语法格式。模型修改后必须执行迁移命令才能生效,模板文件需要放在正确目录路径下。

相关推荐
早日退休!!!21 分钟前
C++性能优化指南
开发语言·c++·性能优化
蹦蹦跳跳真可爱58926 分钟前
计算机视觉处理----OpenCV(从摄像头采集视频、视频处理与视频录制)
人工智能·python·opencv·计算机视觉·音视频
一个天蝎座 白勺 程序猿1 小时前
Python爬虫(48)基于Scrapy-Redis与深度强化学习的智能分布式爬虫架构设计与实践
爬虫·python·scrapy
当归10241 小时前
Fuse.js:打造极致模糊搜索体验
开发语言·javascript·ecmascript
一只小小汤圆1 小时前
c# 显示正在运行的线程数
开发语言·c#
vvilkim2 小时前
深入理解C# MVVM模式:从理论到实践
开发语言·c#
magic 2452 小时前
return this;返回的是谁
java·开发语言
egoist20233 小时前
【Linux仓库】冯诺依曼体系结构与操作系统【进程·壹】
linux·运维·服务器·开发语言·操作系统·冯诺依曼体系结构
快乐肚皮3 小时前
深入解析Java17核心新特性(密封类、模式匹配增强、文本块)
开发语言·java17·密封类·模式匹配增强·文本块
钟离墨笺3 小时前
Go语言学习-->编译器安装
开发语言·后端·学习·golang