当前位置: 首页 > news >正文

进阶向:Django入门,从零开始构建一个Web应用

 一、Django是什么?

想象你建房子需要砖头、水泥、设计图... Django就是Python的Web框架工具箱,它帮你准备好了:
 数据库管理
 用户登录系统
 网页模板引擎
 安全防护(防黑客攻击)
你只需专注"盖房子"(业务逻辑),不用从烧砖开始!


 二、环境准备(5分钟搞定)
  1. 安装Python

    • 官网下载Python 3.8+:python.org

    • 安装时勾选 Add Python to PATH

  2. 安装Django
    打开命令行(Windows按Win+R输入cmd):

    pip install django  

    验证安装:

    django-admin --version  
    # 看到版本号(如4.2)即成功  
     三、创建第一个Django项目
  3. 生成项目骨架

    django-admin startproject myblog  # 创建名为myblog的项目  
    cd myblog  # 进入项目目录  

    目录结构解密

    myblog/  
    │  
    ├── manage.py         # 项目管理工具(启动/迁移等)  
    │  
    └── myblog/           # 项目核心目录  ├── __init__.py  ├── settings.py   # 全局配置(数据库/时区等)  ├── urls.py       # 网址路由中心  └── wsgi.py      # 部署用  

    启动开发服务器

    python manage.py runserver  

    访问 http://127.0.0.1:8000 → 看到火箭页面即成功!🎉

<script src="chrome-extension://lopnbnfpjmgpbppclhclehhgafnifija/aiscripts/script-main.js"></script>
 四、创建博客应用(App)

项目 vs 应用

  • 项目 = 整个网站(如"京东商城")

  • 应用 = 独立功能模块(如"用户系统"、"商品系统")

  1. 创建blog应用

    python manage.py startapp blog  

    注册应用到项目
    编辑 myblog/settings.py

    INSTALLED_APPS = [  ...  'blog.apps.BlogConfig',  # 添加这一行  
    ]  

五、MVT模式实战(Django核心!)

MVT = Model + View + Template
类比点餐:

  • Model:菜单数据库(存储数据)

  • View:服务员(处理你的请求)

  • Template:摆盘的菜品(展示页面)

1. Model:定义博客文章

编辑 blog/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  # 后台显示标题  

 2. 生成数据库表

python manage.py makemigrations  # 创建迁移文件  
python manage.py migrate         # 执行迁移(生成数据表)  
3. View:处理请求逻辑

编辑 blog/views.py

from django.shortcuts import render  
from .models import Article  def article_list(request):  articles = Article.objects.all()  # 获取所有文章  return render(request, 'blog/list.html', {'articles': articles})  
4. Template:设计页面
  1. 创建目录:

    mkdir blog/templates/blog  

新建 blog/templates/blog/list.html

<!DOCTYPE html>  
<html>  
<head>  <title>我的博客</title>  
</head>  
<body>  <h1>文章列表</h1>  <ul>  {% for article in articles %}  <li>{{ article.title }} - {{ article.created_at }}</li>  {% endfor %}  </ul>  
</body>  
</html>  

 

5. URL路由:绑定访问路径
  1. 在 blog 目录创建 urls.py

  2. 编辑 blog/urls.py

    from django.urls import path  
    from . import views  urlpatterns = [  path('', views.article_list, name='article_list'),  
    ]  

    修改项目路由 myblog/urls.py

    from django.contrib import admin  
    from django.urls import include, path  urlpatterns = [  path('admin/', admin.site.urls),  path('blog/', include('blog.urls')),  # 包含blog应用的路由  
    ]  
     六、使用Admin后台管理

创建超级用户 

python manage.py createsuperuser  
# 输入用户名/邮箱/密码  

 注册Model到Admin
编辑 blog/admin.py

from django.contrib import admin  
from .models import Article  admin.site.register(Article)  
  1. 访问 http://127.0.0.1:8000/admin

    • 登录后即可增删改文章!

 七、效果验收
  1. 访问 http://127.0.0.1:8000/blog

  2. 看到文章列表(先在Admin添加几条数据)

  3. 恭喜!你的博客骨架已完成

 

💡 下一步学习建议
添加文章详情页在 views.py 写 article_detail 视图模板中显示完整内容用户评论功能新建 Comment Model(关联文章)使用Django表单(forms)部署上线推荐平台:PythonAnywhere(免费)
pip install gunicorn  
pip freeze > requirements.txt  

新手提示:遇到错误时,仔细阅读命令行报错信息!90%的问题都有明确提示 

资源推荐
  • Django官方教程

  • 《Django for Beginners》电子书

  • 实战项目:个人博客/待办清单/简易电商

记住: 每个Django开发者都曾从"Hello World"开始。坚持三天,你会惊叹自己的进步!

本文手写代码已测试通过,环境:Django 5.0 + Python 3.10
原创不易,转载请注明来源 

 

http://www.lqws.cn/news/568153.html

相关文章:

  • 面试准备first
  • 【C++11】异常
  • [Linux入门] Linux LVM与磁盘配额入门指南
  • Tomcat 安装使用教程
  • 大数据Hadoop之——安装部署hadoop
  • 深入剖析Nacos服务发现与注册,及如何基于LoadBalancer实现负载均衡
  • 大事件项目记录13-接口开发-补充
  • 【如何实现分布式压测中间件】
  • 【更新至2024年】1996-2024年各省农村居民人均消费支出数据(无缺失)
  • JVM基础--JVM的组成
  • 如何将Excel表的内容转化为json格式呢?
  • SCAU期末笔记 - 操作系统 英文定义题
  • Linux 环境变量剖析
  • CNN, RNN, LSTM
  • 2.4 分层解耦(Spring的IOC和DI讲解)
  • Qt事件系统
  • 【innovus基础】手修drc之——金属跳层/修改线宽
  • H3C-路由器交换机-中继
  • Gemini-CLI:谷歌开源的命令行AI工具,重新定义开发者工作流
  • C++异常处理深度解析:标准库异常类与最佳实践
  • 可达性分析算法Test
  • 矩阵的逆 线性代数
  • rabbitmq springboot 有哪些配置参数
  • 打卡day57
  • WebRTC系列:(一)MacOS开发环境搭建(Vscode + Clangd)
  • Ubuntu开放mysql 3306端口
  • 现代 JavaScript (ES6+) 入门到实战(八):总结与展望 - 成为一名现代前端开发者
  • NLP随机插入
  • 复旦大学经济学院系统思考训练
  • MyBatis批量删除