专栏首页猪圈子特别编辑--windows+python+django实现前端页面上传到指定路径生成个性化二维码

特别编辑--windows+python+django实现前端页面上传到指定路径生成个性化二维码

python-前端页面上传文件到指定路径

小贴士

本文是在windows通过python语言,实现前端页面上传文件到我们本地的指定路径,如在liunux环境进行实现,则参考本公众号上一篇文章在linux首先搭建python以及django环境

- 首先我们得具备Django环境+python

-在django目录下创建我们的项目project01

-在项目下创建我们的应用app01

-工程、项目创建完成之后,接着我们在应用目录下创建file目录放置我们的前端页面文件index.html

<!DOCTYPE html>
<head>
    <title>生成二维码</title>
</head>
<body>
<form method='post' action='/sub/' enctype="multipart/form-data">
    <p>网址:<input type='text' name='website' value='http://'></p>
    <br>请上传图片:<br>
    <input type="file" name="myfile"><br>
    <button type="submit">提交</button>
    {% csrf_token %}
</form>
</body>

-然后在编辑我们的视图文件views.py文件

注:from_future首行文件必须放在首行

* ./%s指的的当前目录下的转化成字符

from __future__ import unicode_literals
from django.utils.six import BytesIO
from MyQR import myqr
from django.http import HttpResponse
from django.shortcuts import render
import os
import random
def home(request):
        return render(request,'index.html')

def generate_Image(request):
    #获取上传的地址
    website = request.POST.get('website')
    # 请求方法为POST时,进行处理
    if request.method == "POST":
        # 获取上传的文件,如果没有文件,则默认为None
        File = request.FILES.get("myfile", None)
        if File is None:
            return HttpResponse("没有需要上传的文件")
        else:
            # 打开特定的文件进行二进制的写操作
            # print(os.path.exists('/temp_file/'))
            with open("./%s" % File.name, 'wb+') as f:
                # 分块写入文件
                for chunk in File.chunks():
                    f.write(chunk)
            version, level, qr_name = myqr.run(
                words=website,  # 可以是字符串,也可以是网址(前面要加http(s)://)
                version=1,  # 设置容错率为最高
                level='H',  # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
                picture="./%s" % File.name,  # 将二维码和图片合成
                colorized=True,  # 彩色二维码
                contrast=1.0,  # 用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
                brightness=1.0,  # 用来调节图片的亮度,其余用法和取值同上
                save_name="./%s" % "s" + File.name,  # 保存文件的名字,格式可以是jpg,png,bmp,gif
                save_dir=os.getcwd()  # 控制位置
            )
            return HttpResponse(File.name)

-编辑我们的urls视图文件

from django.conf.urls import url
from django.contrib import admin
from app import views as t_views

urlpatterns = [
    url(r'^$',t_views.home),
    url(r'^sub/',t_views.generate_Image),
    url(r'^admin/', admin.site.urls),

]

-编辑settings.py将我们的app01app添加进去

进行添加这个'app',

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

本文分享自微信公众号 - 猪圈子(Tester-sc),作者:狮子搏兔 亦用全力

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 面试题十四期-selenium+python面试题目总结

    webDriver是按照client/server模式设计,client就是我们的测试代码,发送请求,server就是打开的浏览器来打开client发出的请求并...

    测试小兵
  • Postman日记之多个Json如何断言

    前俩篇文章给大家简单介绍了下postman设置全局变量以及断言的使用方法,今天我给大家简单举个例子讲讲多层级的断言我们该如何去断言,在看这篇文章之前如果对于js...

    测试小兵
  • MySQL进阶之索引

    索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的...

    测试小兵
  • if __name__ == '__main__': 到底是个啥?

    Crossin先生
  • Spring Boot 1.X和2.X优雅重启实战

    在重启之前首先发送重启命令到endpoint,或者用kill 进程ID的方式,千万不要用kill -9。

    猿天地
  • Kubernetes中的Configmap和Secret

    如果需要向容器传递参数,可以在Yaml文件中通过command和args或者环境变量的方式实现。

    大江小浪
  • Vue框架Element UI教程-导航栏跳转路由(五)

    Element UI手册:https://cloud.tencent.com/developer/doc/1270 中文文档:http://element-c...

    祈澈菇凉
  • Unix系统服务监控 Monit

    Monit 是Unix系统中用于管理和监控进程、程序、文件、目录和文件系统的工具。使用 Monit 可以检测进程是否正常运行,如果异常可以自动重启服务以及报警,...

    用户2131907
  • QHD DDIC is implemented via HANA

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 零基础使用Django2.0.1打造在线教育网站(七):数据库字段的定义(上)

    努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

    啃饼小白

扫码关注云+社区

领取腾讯云代金券