精华内容
下载资源
问答
  • 1、项目结构目录 新建一个www项目,在该项目下创建cgi-bin和files文件夹,cgi-bin主要用来放.py文件...3、在cgi-bin路径下创建一个server.py文件实现本地文件上传到项目,如图 4、运行,启动服务: 在终端,进入w...

    1、项目结构目录
    新建一个www项目,在该项目下创建cgi-bin和files文件夹,cgi-bin主要用来放.py文件,files用于存放上传后的文件
    所有的HTML文件全部放在根目录www路径下,如图:
    在这里插入图片描述
    2、新建一个index.html文件,在页面显示文件上传控件
    在这里插入图片描述
    3、在cgi-bin路径下创建一个server.py文件,实现本地文件上传到项目,如图
    在这里插入图片描述
    4、运行,启动服务:
    在终端,进入www目录,输入python -m http.server --cgi ,启动服务
    在这里插入图片描述
    打开网页,输入http://localhost:8000/index.html
    在这里插入图片描述
    5、点击选择文件,在本地选择文件,点击submit上传文件即可。上传成功后,在项目files目录下,可以查看上传的文件

    展开全文
  • python django 实现文件上传

    千次阅读 2016-10-28 15:05:23
    通过 python django 实现 web 上传文件至服务器。 操作环境: Centos 7 Python 2.7.5 Django 1.10.2 创建项目与应用 创建project和app,分别为project和app [root@centos7-201 ~]# django-a

    最近在学习 python django 框架,然后网上找了好多东西在做,下面是实现的第一个功能。

    通过 python django 实现 web 页面上传文件至服务器。

    操作环境:

    Centos 7
    Python 2.7.5
    Django 1.10.2

    创建项目与应用

    创建project和app,分别为project和app

    [root@centos7-201 ~]# django-admin.py startproject project
    [root@centos7-201 ~]# cd project/
    [root@centos7-201 project]# django-admin.py startapp app

    编辑project/settings.py文件,将新定义的 app 加入到 INSTALLED_APPS 配置项里面 。如果不加的话,django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app',
    ]

    设计Model(数据库)

    编辑app/models.py文件,新建一个类,并且创建两个字段,分别用于存储用户名和上传的文件

    CharField:用于存储字符串, max_length设置最大长度
    FileField:用于存储文件字符串,upload_to设置文件上传路径

    from __future__ import unicode_literals
    from django.db import models
    
    # Create your models here.
    class User(models.Model):
        username = models.CharField(max_length = 30)
        filename = models.FileField(upload_to = './upload/')
    
        def __unicode__(self):
            return self.username

    创建完成之后进行数据库同步

    python manage.py makemigrations
    python manage.py migrate

    makemigrations:makemigrations命令用来创建新的model
    migrate:migrate命令按照app顺序建立或者更新数据库, 将models.py与数据库同步

    它会生成app_user表,就我是我们models.py 中所创建的类。Django 提供了他们之间的对应关系。

    [root@centos7-201 project]# python manage.py makemigrations
    Migrations for 'app':
      app/migrations/0001_initial.py:
        - Create model User
    [root@centos7-201 project]# python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, app, auth, contenttypes, sessions
    Running migrations:
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... OK
      Applying app.0001_initial... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying auth.0008_alter_user_username_max_length... OK
      Applying sessions.0001_initial... OK
    [root@centos7-201 project]# 
    

    创建视图

    1、编辑app/views.py文件

    form.is_valid

    # -*- coding:utf-8 -*-
    from django.shortcuts import render
    from django.shortcuts import render_to_response
    from django import forms
    from django.http import HttpResponse
    from app.models import User
    
    # Create your views here.
    class UserForm(forms.Form):
        username = forms.CharField()
        filename = forms.FileField()
    
    def register(request):
        if request.method == 'POST':
            form = UserForm(request.POST, request.FILES)
            if form.is_valid():
                # 获取表单数据
                username = form.cleaned_data['username']
                filename = form.cleaned_data['filename']
                # 获取数据库数据
                user = User()
                user.username = username
                user.filename = filename
                user.save()
                return HttpResponse('file upload ok !')
        else:
            form = UserForm()
        return render_to_response('register.html', {'form': form})
    

    form.is_valid()返回true后,表单数据都被存储在form.cleaned_data对象中(字典类型,意为经过清洗的数据),而且数据会被自动转换为Python对象,如:在form中定义了DateTimeField,那么该字段将被转换为datetime类型,还有诸如:IntegerField、FloatField

    user.save() 将信息保存于数据库中


    2、创建web页面

    创建目录 templates

    [root@centos7-201 project]# mkdir app/templates

    创建app/templates/register.html文件并进行编辑

    method=post:方法为post
    enctype=multipart/form-data:表单中enctype=multipart/form-data的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据

    显示form找template中的方法多种多样,也可以自定义,下面三个分别表示用p标签,table标签和ul表示显示表单

    • form.as_p
    • form.as_table
    • form.as_ul

    vim app/templates/register.html

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <h1>upload file</h1>
        <form method="post" enctype="multipart/form-data" >
            {{ form.as_p }}
            <input type="submit" value="Submit" />
        </form>
    </body>
    </html>
    

    3、设置模板路径

    编辑project/urls.py文件,添加url匹配规则

    from django.conf.urls import url
    from django.contrib import admin
    from app import views as app_views
    
    urlpatterns = [
        url(r'^app/$', app_views.register),
        url(r'^admin/', admin.site.urls),
    ]

    4、注释掉全局控制参数

    编辑project/settings.py文件,找到MIDDLEWARE,注释掉它,不然上传文件报错

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        #'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]

    5、上传文件

    打开web浏览器进行上传,点击Submit提交后提示 file upload ok,说明文件已经上传成功

    这里写图片描述

    这里写图片描述


    6、验证

    上传的文件在 ./upload 目录下面
    数据库所记录文件的顺序,username及filename,我们可以通过命令进行查看

    [root@centos7-201 project]# ls
    app  db.sqlite3  manage.py  project  upload
    [root@centos7-201 project]# 
    [root@centos7-201 project]# ls upload/
    install.sh
    [root@centos7-201 project]# sqlite3 db.sqlite3 
    sqlite> select * from app_user;
    1|wanglei|upload/install.sh
    展开全文
  • Python实现批量下载文件#!/usr/bin/env python# -*- coding:utf-8 -*-from gevent import monkeymonkey.patch_all()from gevent.pool import Poolimport requestsimport sysimport osdef download(url):chrome = '...

    Python实现批量下载文件

    #!/usr/bin/env python

    # -*- coding:utf-8 -*-

    from gevent import monkey

    monkey.patch_all()

    from gevent.pool import Pool

    import requests

    import sys

    import os

    def download(url):

    chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36 ' +

    '(KHTML,like Gecko) Chrome/41.0.2272.101 Safari/537.36'

    headers = {'User-Agent': chrome}

    filename = url.split('/')[-1].strip()

    r = requests.get(url.strip(),headers=headers,stream=True)

    with open(filename,'wb') as f:

    for chunk in r.iter_content(chunk_size=1024):

    if chunk:

    f.write(chunk)

    f.flush()

    print filename,"is ok"

    def removeLine(key,filename):

    os.system('sed -i /%s/d %s' % (key,filename))

    if __name__ =="__main__":

    if len(sys.argv) == 2:

    filename = sys.argv[1]

    f = open(filename,"r")

    p = Pool(4)

    for line in f.readlines():

    if line:

    p.spawn(download,line.strip())

    key = line.split('/')[-1].strip()

    removeLine(key,filename)

    f.close()

    p.join()

    else:

    print 'Usage: python %s urls.txt' % sys.argv[0]

    其他网友的方法:

    from os.path import basename

    from urlparse import urlsplit

    def url2name(url):

    return basename(urlsplit(url)[2])

    def download(url,localFileName = None):

    localName = url2name(url)

    req = urllib2.Request(url)

    r = urllib2.urlopen(req)

    if r.info().has_key('Content-Disposition'):

    # If the response has Content-Disposition,we take file name from it

    localName = r.info()['Content-Disposition'].split('filename=')[1]

    if localName[0] == '"' or localName[0] == "'":

    localName = localName[1:-1]

    elif r.url != url:

    # if we were redirected,the real file name we take from the final URL

    localName = url2name(r.url)

    if localFileName:

    # we can force to save the file as specified name

    localName = localFileName

    f = open(localName,'wb')

    f.write(r.read())

    f.close()

    download(r'你要下载的python文件的url地址')

    以上便是本文给大家分享的全部内容了,小伙伴们可以测试下哪种方法效率更高呢。

    展开全文
  • 主要介绍了Python实现抓取网页生成Excel文件的方法,涉及PyQuery模块的使用及Excel文件相关操作技巧,需要的朋友可以参考下
  • 这篇文章主要介绍了Python实现抓取HTML网页并以PDF文件形式保存的方法,结合实例形式分析了PyPDF2模块的安装及Python抓取HTML页面并基于PyPDF2模块生成pdf文件的相关操作技巧,需要的朋友可以参考下本文实例讲述了...

    {content}

    展开全文
  • python web 上传文件

    千次阅读 2019-07-12 09:41:08
    python上传文件 一、.写html文件文件名为upfile.html) 上传文件 {% csrf_token %} 说明: 1、表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况...
  • Pycharmexcel文件:导入的excel模板二、python代码 由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻辑比较复杂,所以决定通过python模拟登陆导入网站,点击相关功能来实现自动导入。...
  • python网页上传excle、text文件 python网页上传excle、text文件 在讲解如何上传之前需要了解Content-Type的知识点 multipart/form-data:Content-Type的类型为multipart/form-data时,代表以上传文件、图片等二...
  • 一般在做网络爬虫的时候,都是保存网页信息为主,或者下载单个文件。当涉及到多文件批量下载的时候,由于下载所需时间不定,下载的文件名不定,所以有一定的困难。思路参数配置在涉及下载的时候,需要先对...
  • 下载软件定位元素,下面代码已经定位完成,...使用谷歌浏览器可以直接使用,前提是需要先打开文件选择控件 代码 import win32gui import win32con # 找到一级窗口 dialog = win32gui.FindWindow("#32770","打开") ...
  • 主要介绍了Python实现抓取HTML网页并以PDF文件形式保存的方法,结合实例形式分析了PyPDF2模块的安装及Python抓取HTML页面并基于PyPDF2模块生成pdf文件的相关操作技巧,需要的朋友可以参考下
  • Python打包exe文件方法汇总【4种】

    万次阅读 多人点赞 2018-10-21 22:15:11
    title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进阶笔记 permalink: password: keywords: description: 使用py2exe,pyinstaller,cx_Freeze,...
  • Python 语言实现的抓取网页内容与列文件目录
  • 按照不同的情况,python下载文件可以分为三种:小文件下载大文件下载批量下载python文件下载流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放的地方。Python文件下载流程以下载...
  • Python之flask文件上传

    千次阅读 2019-01-09 16:01:13
    文件上传工作原理 1.一个 &lt;form&gt; 标签被标记有 enctype=multipart/form-data ,并且在里面包含一个 &lt;input type=file&gt; 标签。 2.服务端应用通过请求对象上的 files 字典访问文件。 3....
  • python flask 上传文件到服务器

    千次阅读 2020-05-19 13:57:58
    今天要做一个简单的页面,可以实现文件 上传到服务器(保存在指定文件夹) #Sample.py # coding:utf-8 from flask import Flask,render_template,request,redirect,url_for from werkzeug.utils import secure...
  • 人生苦短,我有python啊,试试用 Python 来朗读给你听吧。 网页转换成语音,步骤无外乎: 网页正文识别,获取到正文的文本内容; 文本转语音,通过接口将文本转换成语音文件; 语音文件的发声,即将语音文件读出...
  • Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法requests。下面来看看三种方法是如何来下载...
  • Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法requests。下面来看看三种方法是如何来下载...
  • Python实现文件导入Excel功能

    千次阅读 2018-09-20 12:59:24
    Python实现文件导入Excel功能 在工作中,我经常遇到一些纯人工活,比如把文件名登录到Excel里。但遇到100+以上的文件呢。。。emmmmmm一开始我是手动复制粘贴,然后就想用python写,这里记录一下编程的思路 ...
  • Python实现文件浏览器

    2019-01-31 13:45:04
    支持删除,查看,和清空等功能,具备基本浏览器功能,使用Tkiner框架对2.x版本进行重构所得。
  • python实现cab文件解压

    千次阅读 2018-06-04 11:33:54
    我看了网上目前还没有cab文件的解压代码,也算是第一人了,哈哈哈...f = requests.get(URL)#网页下载的cab文件 with open(URL1, "wb") as code: code.write(f.content)#保存压缩包到当前目录 cab = cabf...
  • 一 使用flask获取上传文件 1 html的代码 <form enctype="multipart/form-data" method="post"action="http://127.0.0.1:12306/upload_material"> <input type="file" name="materials" id="user-pic...
  • Python网页自动截图

    万次阅读 2017-08-04 14:20:57
    Python网页自动截图,你值得拥有~
  • 步骤1:获得网页的所有链接,访问所有链接,获得链接里的图片地址。步骤2:根据图片地址下载图片。下载jpg格式的图片其实很容易。1 socket = urllib2.urlopen(url)2 data = socket.read()3 with open(path, “wb“) ...
  • Python 网页爬虫

    千次阅读 2015-03-01 18:49:17
    这里我们采用Python实现, 二、Python入门 python 自动缩进:shift+table整块向左缩进,table向右缩进,在修改整块代码时很有用比如将函数变成单独执行时。 了解python的变量,包,函数定义等 三、网页...
  • python上传文件到web

    千次阅读 2018-06-13 12:08:51
    python的requests发送/上传多个文件 2017年07月10日 13:45:32 阅读数:16133 1、需要的环境 Python2.X Requests 库 2、单字段发送单个文件 在requests中发送文件的接口只有一种,那就是使用requests.post的...
  • python网页编辑器-网页python编辑

    千次阅读 2020-10-30 22:58:18
    好了,卖了这么多关子,下面容我向你郑重推荐这款超强的 python 编辑器——google colaboratory!? 02 这就是个网页!? 没错,colab 是一个免费的 jupyter notebook 环境(你可以想成是网页版多功能笔记本),它不...
  • Python 实现文件全文翻译

    千次阅读 2019-12-15 18:44:17
    后来发现附录3《Python实现文档自动翻译》写得比较全面,但实现文件文全翻译还是有很多不足,其中介绍的方法没有一种可以拿来就用。 三、大文件全文翻译实现 仔细比较后,发现还是老老实实用百度的翻译API模式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,081
精华内容 39,632
关键字:

python网页上传文件

python 订阅