django1.4上传文件简明攻略

本文详细介绍了使用Django创建并配置一个简单的项目,包括项目初始化、应用创建、URL配置、视图实现以及基本模板文件的编写。通过实例演示了如何从零开始构建一个功能完整的Web应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建upload项目
django-admin.py startproject upload

进入upload项目目录,创建home应用
cd upload
./manage.py startapp home

在home应用目录下创建一个模板目录

mkdir home/templates

进行项目基本设置

vi upload/settings.py

  1. 添加home应用
    INSTALLED_APPS = (
        # ...
        'home',
    )
  2. 添加home应用的模板目录
    import os
    #...
    TEMPLATE_DIRS = (
        # ...
        os.path.join(os.path.realpath(os.path.dirname(__file__)), 'home/templates'),
    )

进行项目url配置
vi upload/urls.py

urlpatterns = patterns('',
    # ...
    url(r'^$', 'home.views.index', name='home'),
    url(r'^upload', 'home.views.upload'),
)

编辑home应用的views.py文件

vi home/views.py

from django.views.decorators.csrf import csrf_protect
from django.shortcuts import render_to_response, render 

@csrf_protect
def index(request):
    """docstring for index"""
    return render(request, 'index.html', {'title': 'test page'})

def upload(request):
    if request.method == 'POST':
        f = handle_uploaded_file(request.FILES['pic'])
    return render_to_response('upload.html', {'file':f})

def handle_uploaded_file(f):
    with open(f.name, 'wb+') as info:
        for chunk in f.chunks():
            info.write(chunk)
    return f

在home应用的templates中添加两个模板文件

index.html

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>{{ title }}</title>
</head>
<body>
    <h1>Upload File</h1>
    <form action="/upload" method="post" enctype="multipart/form-data" accept-charset="utf-8">
        {% csrf_token %}
        <input type="file" name="pic" value="" />
        <button>Submit</button>
    </form>
</body>
</html>

upload.html

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Upload Successed</title>
</head>
<body>
    <h1>Upload file successed.</h1>
    <pre>
        filename: {{ file.name }}
        filesize: {{ file.size }} bytes
    </pre>
    <a href="/">back</a>    
</body>
</html>

开始测试

./manage.py runserver

转载于:https://my.oschina.net/zzxworld/blog/60228

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值