Django框架的搭建步骤

发布时间:2021-07-05 17:22:48 作者:chen
来源:亿速云 阅读:225
# Django框架的搭建步骤

## 一、Django简介与环境准备

### 1.1 Django框架概述
Django是一个基于Python的高级Web框架,遵循MVT(Model-View-Template)设计模式。其主要特点包括:
- 自带ORM(对象关系映射)
- 自动化管理后台
- 完善的URL路由系统
- 内置模板引擎
- 强调DRY(Don't Repeat Yourself)原则

### 1.2 环境要求
在开始搭建前需确保:
- Python 3.6+(推荐3.8+)
- pip包管理工具
- 虚拟环境工具(推荐venv或virtualenv)

```bash
# 检查Python版本
python --version
# 检查pip版本
pip --version

1.3 创建虚拟环境

# 使用venv创建虚拟环境(Windows)
python -m venv myenv
# 激活环境
myenv\Scripts\activate

# macOS/Linux
python3 -m venv myenv
source myenv/bin/activate

二、Django安装与项目创建

2.1 安装Django

pip install django
# 验证安装
python -m django --version

2.2 创建项目

django-admin startproject myproject

生成的项目结构:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

2.3 运行开发服务器

python manage.py runserver

访问 http://127.0.0.1:8000 看到欢迎页面即表示成功

三、应用创建与配置

3.1 创建应用

python manage.py startapp myapp

生成的应用结构:

myapp/
    __init__.py
    admin.py
    apps.py
    migrations/
    models.py
    tests.py
    views.py

3.2 注册应用到项目

修改myproject/settings.py

INSTALLED_APPS = [
    ...
    'myapp.apps.MyappConfig',
]

3.3 配置数据库

默认使用SQLite,如需更改(如MySQL):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

需额外安装对应数据库驱动:

pip install mysqlclient  # 对于MySQL

四、模型设计与数据库迁移

4.1 定义模型

编辑myapp/models.py

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.title

4.2 生成迁移文件

python manage.py makemigrations

输出示例:

Migrations for 'myapp':
  myapp/migrations/0001_initial.py
    - Create model Article

4.3 执行迁移

python manage.py migrate

五、管理后台配置

5.1 创建超级用户

python manage.py createsuperuser

5.2 注册模型到admin

编辑myapp/admin.py

from django.contrib import admin
from .models import Article

admin.site.register(Article)

5.3 访问管理后台

启动服务后访问: http://127.0.0.1:8000/admin

六、视图与URL配置

6.1 创建基础视图

编辑myapp/views.py

from django.shortcuts import render
from .models import Article

def article_list(request):
    articles = Article.objects.all()
    return render(request, 'articles/list.html', {'articles': articles})

6.2 配置模板

创建模板目录结构:

myapp/
    templates/
        articles/
            list.html

示例模板list.html

<!DOCTYPE html>
<html>
<head>
    <title>文章列表</title>
</head>
<body>
    <h1>所有文章</h1>
    <ul>
    {% for article in articles %}
        <li>{{ article.title }} - {{ article.pub_date }}</li>
    {% endfor %}
    </ul>
</body>
</html>

6.3 配置URL路由

  1. 在应用目录创建urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.article_list, name='article_list'),
]
  1. 在项目urls.py中包含应用路由:
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('articles/', include('myapp.urls')),
]

七、静态文件处理

7.1 配置静态文件

修改settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "static"]

7.2 创建静态文件目录

项目根目录下创建static文件夹,结构示例:

static/
    css/
        style.css
    js/
        main.js
    images/

7.3 模板中引用静态文件

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<script src="{% static 'js/main.js' %}"></script>

八、表单处理

8.1 创建表单类

新建forms.py

from django import forms
from .models import Article

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

8.2 创建表单视图

from django.shortcuts import redirect, render
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, 'articles/create.html', {'form': form})

8.3 表单模板

create.html示例:

<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">提交</button>
</form>

九、用户认证系统

9.1 启用认证功能

Django已内置认证系统,确保settings.py包含:

INSTALLED_APPS = [
    ...
    'django.contrib.auth',
    'django.contrib.contenttypes',
]

MIDDLEWARE = [
    ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
]

9.2 用户登录视图

from django.contrib.auth import authenticate, login

def user_login(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('article_list')
    return render(request, 'registration/login.html')

9.3 登录模板

<form method="post">
    {% csrf_token %}
    <input type="text" name="username" placeholder="用户名">
    <input type="password" name="password" placeholder="密码">
    <button type="submit">登录</button>
</form>

十、项目部署准备

10.1 生产环境设置

修改settings.py

DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com', 'localhost']

10.2 收集静态文件

python manage.py collectstatic

10.3 选择部署方式

常见选项: - Apache + mod_wsgi - Nginx + Gunicorn - Docker容器化部署 - 云平台(如AWS、Azure)

结语

通过以上步骤,我们完成了Django项目从环境搭建到基础功能实现的完整流程。实际开发中还需考虑: 1. 安全性配置(CSRF防护、XSS防护等) 2. 性能优化(缓存、数据库索引等) 3. REST API开发(可结合Django REST framework) 4. 异步任务处理(Celery等)

建议参考Django官方文档(https://docs.djangoproject.com)获取最新最佳实践。 “`

注:本文实际约2100字,可根据需要扩展以下内容: 1. 中间件配置示例 2. 缓存机制实现 3. 测试用例编写 4. 国际化配置 5. 具体部署方案详解

推荐阅读:
  1. Git服务的搭建步骤
  2. 什么是phpcms搭建的步骤

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

django

上一篇:Python中如何复制文件

下一篇:Python中怎么实现同步和异步

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》