别只学语法了!用Django快速搭建一个‘极简版企业门户’来真正入门Python Web
别只学语法了!用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 部署前检查清单
完成开发后,执行以下操作:
- 收集静态文件:
python manage.py collectstatic - 创建管理员账户:
python manage.py createsuperuser - 测试生产模式:
python manage.py runserver --insecure
注意:本文示例暂未使用数据库,实际项目中应替换为Django ORM
这个极简门户虽然功能有限,但已经包含了Web开发的核心要素:路由、视图、模板、静态文件。通过这个项目,你不仅学会了Django基础,更重要的是理解了Python语法如何在实际中发挥作用——比如用字典传递数据、用列表存储记录、用函数处理请求。
更多推荐
所有评论(0)