别只学语法了!用Django快速搭建一个‘极简版企业门户’来真正入门Python Web

学习编程最令人沮丧的,莫过于埋头苦学数月语法后,依然不知道如何动手做一个真实项目。今天,我们将打破这种低效循环—— 用90分钟从零搭建一个可运行的企业门户网站 ,在实战中反向掌握Python核心语法。无需等待"学完所有知识",现在就开始!

这个实验性教程专为两类人设计:一是被传统教材劝退的Python初学者,二是想快速验证Web开发流程的实践派。我们将使用Django框架,因为它像乐高积木一样,能让你用最少的代码拼出完整功能。以下是完成效果预览:

  • 首页展示公司简介(支持Markdown排版)
  • /news/ 路径动态加载企业新闻
  • 自适应移动端的基础CSS样式
  • 本地开发服务器实时调试

1. 环境准备与项目初始化

在开始前,请确保你的电脑已安装:

  • Python 3.8+( 官网下载
  • VS Code(或其他IDE)
  • 终端/命令行基础操作能力

打开终端,执行以下命令创建虚拟环境并安装Django:

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
pip install django

接着用Django脚手架生成项目骨架:

django-admin startproject enterprise_portal
cd enterprise_portal
python manage.py startapp core

这会产生如下目录结构:

enterprise_portal/
├── core/          # 主应用模块
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations/
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py      # 项目管理脚本
└── enterprise_portal/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py # 核心配置文件
    ├── urls.py     # 路由定义
    └── wsgi.py

提示:如果看到"Command 'python' not found"错误,尝试将 python 替换为 python3

2. 构建最小化企业门户功能

2.1 创建首页视图

编辑 core/views.py ,用函数视图实现首页:

from django.shortcuts import render
from django.views.decorators.http import require_GET

@require_GET
def homepage(request):
    context = {
        "company_name": "极简科技",
        "tagline": "用技术简化商业",
        "description": """成立于2023年,我们专注于:
                        - 企业级Python解决方案
                        - 敏捷开发流程咨询
                        - 数字化转型赋能"""
    }
    return render(request, "core/homepage.html", context)

这段代码展示了Python的:

  • 函数定义与装饰器语法
  • 字典数据结构
  • 多行字符串处理

2.2 设计模板与静态文件

core/templates/core/ 目录创建 homepage.html

<!DOCTYPE html>
<html>
<head>
    <title>{{ company_name }} | {{ tagline }}</title>
    <style>
        body { font-family: sans-serif; max-width: 800px; margin: 0 auto; }
        .news-item { margin-bottom: 1.5rem; }
    </style>
</head>
<body>
    <h1>{{ company_name }}</h1>
    <h3>{{ tagline }}</h3>
    <div>{{ description|linebreaks }}</div>
</body>
</html>

2.3 配置URL路由

修改项目级 urls.py

from django.contrib import admin
from django.urls import path
from core.views import homepage

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', homepage, name='homepage'),
]

此时运行开发服务器:

python manage.py runserver

访问http://127.0.0.1:8000 即可看到企业首页。

3. 动态新闻系统实现

3.1 用Python列表模拟数据库

views.py 中添加新闻数据与视图:

NEWS_ITEMS = [
    {
        "id": 1,
        "title": "产品v1.0正式发布",
        "content": "经过6个月开发,我们很荣幸推出...",
        "pub_date": "2023-05-15"
    },
    {
        "id": 2,
        "title": "获得天使轮融资",
        "content": "知名风投机构领投500万元...",
        "pub_date": "2023-04-02"
    }
]

def news_list(request):
    return render(request, "core/news_list.html", 
                 {"news_items": NEWS_ITEMS})

def news_detail(request, news_id):
    item = next((x for x in NEWS_ITEMS if x["id"] == news_id), None)
    return render(request, "core/news_detail.html",
                 {"news": item})

这里我们实践了:

  • 列表与字典的组合使用
  • 生成器表达式查找特定新闻
  • 函数参数传递

3.2 新闻模板开发

创建 news_list.html

<h2>企业动态</h2>
{% for item in news_items %}
    <div class="news-item">
        <h3><a href="/news/{{ item.id }}/">{{ item.title }}</a></h3>
        <small>{{ item.pub_date }}</small>
    </div>
{% empty %}
    <p>暂无新闻</p>
{% endfor %}

对应的详情页 news_detail.html

<article>
    <h1>{{ news.title }}</h1>
    <time>{{ news.pub_date }}</time>
    <p>{{ news.content }}</p>
    <a href="/news/">返回列表</a>
</article>

3.3 路由配置更新

新增URL模式:

urlpatterns = [
    # ...原有路由...
    path('news/', news_list, name='news-list'),
    path('news/<int:news_id>/', news_detail, name='news-detail'),
]

4. 增强功能与生产准备

4.1 添加基础样式

core/static/core/ 目录创建 styles.css

/* 响应式布局 */
@media (max-width: 600px) {
    body { padding: 0 1rem; }
    h1 { font-size: 1.5rem; }
}

/* 新闻样式增强 */
.news-item {
    padding: 1rem;
    border-left: 3px solid #4CAF50;
}

在模板头部添加:

{% load static %}
<link rel="stylesheet" href="{% static 'core/styles.css' %}">

4.2 部署前检查清单

完成开发后,执行以下操作:

  1. 收集静态文件: python manage.py collectstatic
  2. 创建管理员账户: python manage.py createsuperuser
  3. 测试生产模式: python manage.py runserver --insecure

注意:本文示例暂未使用数据库,实际项目中应替换为Django ORM

这个极简门户虽然功能有限,但已经包含了Web开发的核心要素:路由、视图、模板、静态文件。通过这个项目,你不仅学会了Django基础,更重要的是理解了Python语法如何在实际中发挥作用——比如用字典传递数据、用列表存储记录、用函数处理请求。

更多推荐