【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

这篇具有很好参考价值的文章主要介绍了【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


欢迎关注 『Django 网页Web开发』 系列,持续更新中
欢迎关注 『Django 网页Web开发』 系列,持续更新中

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)
【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

用户上传文件存放media如何启用

配置好后就可以在浏览器中访问这个地址。
要记得创建media文件夹
【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

1. 在urls.py中进行配置:

from django.urls import path, re_path
from django.views.static import serve
from django.conf import settings

urlpatterns = [
	re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}, name='media'),
]

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

2. 在settings.py中进行配置:

import os

MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

3. 能够通过media的url访问文件

http://127.0.0.1:8000/media/city/Django.png

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)


moudleForm上传文件实现城市管理

1. moudle.py

与form的关键区别:

  1. 文件存储定义的字段类型是FileField。虽然本质上数据库也是CharField,自动保存数据的路径。FileField的好处在于不逊要我们手动写保存数据的过程,moudleForm帮我们完成这个保存文件的过程。
  2. upload_to='city/'字段的意思是可以帮我们把文件保存在media/city/的文件夹目录下
class City(models.Model):
    """ 城市 """
    name = models.CharField(verbose_name="名称", max_length=32)
    count = models.IntegerField(verbose_name="人口")

    img = models.FileField(verbose_name="Logo", max_length=128, upload_to='city/')

2. url.py

    path('upload/modal/form/', upload.upload_modal_form),
    # 城市列表
    path('city/list/', city.city_list),
    path('city/add/', city.city_add),

3. city.py

加入files=request.FILESform.save()即可快捷地实现文件的上传。
【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

from django.shortcuts import render, redirect
from app01 import models
from app01.utils.bootstrap import BootStrapModelForm


def city_list(request):
    queryset = models.City.objects.all()
    return render(request, 'city_list.html', {'queryset': queryset})


class UpModelForm(BootStrapModelForm):
    bootstrap_exclude_fields = ['img']

    class Meta:
        model = models.City
        fields = "__all__"


def city_add(request):
    title = "新建城市"

    if request.method == "GET":
        form = UpModelForm()
        return render(request, 'upload_form.html', {"form": form, 'title': title})

    form = UpModelForm(data=request.POST, files=request.FILES)
    if form.is_valid():
        # 对于文件:自动保存;
        # 字段 + 上传路径写入到数据库
        form.save()
        return redirect("/city/list/")
    return render(request, 'upload_form.html', {"form": form, 'title': title})


4. city.html

顺带在模板页面中生成了两个页面一个用于moudle 一个 用于城市管理

                <li><a href="/upload/modal/form/">ModalForm上传</a></li>
                <li><a href="/city/list/">城市管理</a></li>

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

city.html

{% extends 'layout.html' %}

{% block content %}
    <div class="container">

        <div style="margin-bottom: 10px">
            <a class="btn btn-success" href="/city/add/">
                <span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
                新建城市
            </a>
        </div>
        <div class="panel panel-default">
            <!-- Default panel contents -->
            <div class="panel-heading">
                <span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
                城市列表
            </div>

            <!-- Table -->
            <table class="table table-bordered">
                <thead>
                <tr>
                    <th>ID</th>
                    <th>Logo</th>
                    <th>名称</th>
                    <th>人口</th>
                </tr>
                </thead>
                <tbody>
                {% for obj in queryset %}
                    <tr>
                        <th>{{ obj.id }}</th>
                        <td>
                            <img src="/media/{{ obj.img }}" style="height: 80px;">
                        </td>
                        <td>{{ obj.name }}</td>
                        <td>{{ obj.count }}</td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
{% endblock %}


5. 文件上传小结

  • 一般文件上传

    file_object = request.FILES.get("exc")
    ...
    
  • Form组件= 一般文件上传+表单验证

    request.POST
    file_object = request.FILES.get("exc")
    
    具体文件操作还是手动自己做。
    
  • ModelForm=表单验证 + 自动保存数据库 + 自动保存文件(一般文件上传的替代)

    - Media文件夹
    - Models.py定义类文件要
    	img = models.FileField(verbose_name="Logo", max_length=128, upload_to='city/')
    

6. 城市管理效果

图片的超链接使用media来呈现出来
【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python 网页Web开发知识!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2023 mzh

Crated:2023-3-1

欢迎关注 『Django 网页Web开发』 系列,持续更新中
欢迎关注 『Django 网页Web开发』 系列,持续更新中
『01. 安装配置Django』
『02. 创建并运行一个Django项目』
『03. 初识Django』
『04. 请求和响应,网页跳转重定向,实战简易表单模拟登陆』
『05. 数据库操作,实战用户管理』
『06. 报错:You have 26 unapplied migration(s). Your project may not work properly until you apply the migra』
『07. 模板语法』
『08. 实战项目:部门和员工管理系统(01)』
『09. 实战项目:员工编辑删除功能与靓号管理(02)』
『10. 实战项目:靓号搜索功能(03)』
『11. 实战项目:分页与页码跳转功能(04)』
『12. 实战项目:分页组件的封装 面向接口编程(05)』
『13. 实战项目:添加用户时的时间选择组件(06)』
『14. 实战项目:一些面向对象的代码结构优化(07)』
『15. 实战项目:管理员增删改查,md5密码和密码重置(08)』
『16. 实战项目:BootStrap类的进一步优化(09)』
『17. 实战项目:login业务涉及cookie、session、中间件(10)』
『18. 实战项目:登录时的验证码(11)』
『19. 实战项目:初识Ajax请求(12)』
『20. 实战项目:Ajax实战之订单管理与弹出对话框(13)』
『21. 实战项目:echart数据图表(14)』
『22. 实战项目:简单的文件上传(15)』
『23. 实战项目:Excel和form和moudleForm的文件上传(16)』
『24. 实战项目:moudleForm的文件上传应用到城市管理(17)』
【更多内容敬请期待】文章来源地址https://www.toymoban.com/news/detail-487623.html


到了这里,关于【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python web实战 | Docker+Nginx部署python Django Web项目详细步骤【干货】

      在这篇文章中,我将介绍如何使用 Docker 和 Nginx 部署 Django Web 项目。一步步讲解如何构建 Docker 镜像、如何编写 Docker Compose 文件和如何配置 Nginx。 1.1 配置 Django 项目 在开始之前,我们需要有一个 Django 项目。如果你还没有 Django 项目,可以按照 Django 官方文档的指导创建一

    2024年02月15日
    浏览(45)
  • Python web实战之Django的文件上传和处理详解

      :Python Web开发、Django、文件上传、文件处理 今天分享一下Django的文件上传和处理。 在开始深入讲解Django的文件上传和处理之前,先了解一下文件上传的基本原理。当用户选择要上传的文件后,该文件会被发送到服务器端,并存储在服务器的某个位置上。我们需要在

    2024年02月13日
    浏览(52)
  • Django 实战开发(一)项目搭建

    用pycharm 编辑器可以直接 New 一个 Django 项目 项目结构如下: /demo/views: /djangoProject/urls: /demo/urls: /djangoProject/settings.py /demo/models 执行下面命令 pip install pymysql python manage.py makemigrations 执行上面这个会报错 ModuleNotFoundError: No module named ‘MySQLdb’ 需要在项目的 init.py 文件里面指定使

    2024年02月08日
    浏览(44)
  • Django教程第4章 | Web开发实战-三种验证码实现

    验证码的存在是为了防止系统被暴力破解攻击,几乎每个系统都有验证码。下面将介绍三种生成验证码方式。 您可以根据你自己的需要进行学习。   安装绘图依赖,利用的是画图模块  PIL  以及随机模块  random  在后台生成一个图片和一串随机数,然后保存在内存中。 编写

    2024年01月15日
    浏览(49)
  • 【python】Flask网页开发——论坛项目实战(完整代码)

    笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【论坛项目实战】 【python】Flask网页开发——论坛项目实战(完整代码) 【python】Flask网页开发——论坛项目实战(1.导航条实现) 【python】Flask网页开发——论坛项目实战(2.登录与注册) 【python】Flask网页开发——论

    2024年04月28日
    浏览(46)
  • Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)

    highchart,国外。 echarts,国内。 本项目集成 hightchart和echarts图表库实现数据统计功能。 包括:折线图,柱状图,饼图和数据集图。 echats  Highcharts chart_html.html echarts方案 :通过jQuery自带ajax向服务端发送请求获取折线图、柱状图、饼图数据。 注意 :需要去echats官方下载echar

    2024年01月16日
    浏览(44)
  • 43--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-课程详情页面、搜索页面以及后台设计

    1.视频播放功能 下载第三方插件:vue-video-player 使用步骤: 第一步: cnpm install vue-video-player 第二步:在main.js中引入

    2024年02月09日
    浏览(55)
  • ideaSSM校医院管理网页模式开发mysql数据库web结构java编程计算机网页源码maven项目

    一、源码特点   idea ssm 校医院管理系统是一套完善的完整信息管理系统,结合SSM框架完成本系统SpringMVC spring mybatis ,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发), 系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术 js css jquery 后

    2024年03月20日
    浏览(45)
  • 这个gayhub的大佬作者,更新起ChatGPT的项目,简直是高产如奶牛呐!实战网页版chatgpt-web源码(上)

    大家好啊,我是测评君,欢迎来到web测评。 最近chatgpt真的是火了一遍又一遍,基本逛gayhub,gitee等开源社区的时候,随处可见各种大佬写的开源项目。今天给大家分享的是Chanzhaoyu大佬编写的一个网页版chatgpt,目前已经超过了12.8k star,而且感觉他都是无时无刻的在持续更新,

    2023年04月25日
    浏览(41)
  • PHP 房产网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

    一、源码特点     PHP 房产网站系统是一套完善的WEB设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88233553 论文 https://download.csdn.net/download/qq_41221322/88233555 PHP 房产网站系统Drea

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包