Django 创建APP完成文件上传

本文深入解析Django框架中的应用(app)概念,包括如何创建、组织及配置应用,探讨视图系统的功能与实现方式,同时覆盖了路由、模板、静态文件处理以及表单操作等关键组件。

一、Django中的application
application(app)就是应用的意思,当我们的项目足够大的时候,我们将功能单独分成多个app进行开发。
举个例子:
一个项目project就相当于 某某大学, 一个应用app就相当于xx学院。

project(项目)和application(应用)的关系:
一个project(项目)是一系列 Django app(应用)的实例,外加那些应用的配置。例如定义数据库连接信息、安装的应用列表、DIRS,等等。
一个app(应用)是一系列便携的 Django 功能,通常包含模型和视图。打包在一个 Python 包里。Django 自带了一些应用,例如管理后台。这些应用的独特之处是便携,可以在多个项目中复用。

django本身是鼓励开发者进行相对独立的项目开发的,因此我们建议以后使用app进行开发。
(一)通过命令行创建app
(1)、命令: python manage.py startapp app名称
在这里插入图片描述
在这里插入图片描述
(2)、在 settings.py 文件 INSTALLD_APPS 列表中注册app
在这里插入图片描述
使用:
1.在app的views.py中编写视图函数
在这里插入图片描述
2.在urls.py中写路由
在这里插入图片描述
3.在templates中写html页面
在这里插入图片描述
4.效果
在这里插入图片描述
扩展:
在这里插入图片描述
(二)使用pycharm创建app
在这里插入图片描述
在这里插入图片描述
并且会在 settings.py中的INSTALL_APPS中自动添加配置。
在这里插入图片描述
创建app方式总结:
(1)python manage.py startapp app名称(需要手动安装)。
(2)使用 pycharm 自带的命令行(需要手动安装)。
(3)使用 tools 工具: 直接写 startapp app名称(需要手动安装)。
(4)使用 pycharm 创建项目的时候,直接创建app(不需要手动安装)。
二、App内部的独立文件
(一)独立路由
之前我们将所有的路由都放到了主urls当中,django支持我们在每个app应用中编写自己的子路由(url)
1、编写自己的子路由
在这里插入图片描述
2、主路由包含子路由
在这里插入图片描述
3、访问路径时,主路径+子路径
在这里插入图片描述
(二)URL命名空间
当一个项目project中有多个app应用时有可能多个app应用的url中的name变量的值相同,当进行url反转的时候就会产生混淆,为了防止这一现象的出现我们可以通过命名空间进行区分。
URL 命名空间在反转URL 时具有唯一确定性,也就是说,同一个应用程序的多个实例使用相同的 URL 模式名称,而通过命名空间可以把它们区分开。
格式:在每一个app的urls.py中添加app_name=’xxx’ 即可
访问格式: app_name:name
例如:
1、app01和app02中的url的name=‘index2’
在这里插入图片描述
app01.urls
在这里插入图片描述
app02.urls
在这里插入图片描述
index.html
在这里插入图片描述
2、使用命名空间
app01中的urls.py
在这里插入图片描述
app02中的urls.py
在这里插入图片描述
访问:
在这里插入图片描述
重定向访问:
reverse(“front:login”)
(三)独立模板文件
在外层的templates中和app01、app02中分别创建index.html,默认访问外层templates中的index.html文件,如果templates中不存在,则按照settings.py中
App的注册顺序进行加载。
在这里插入图片描述
在这里插入图片描述
因此设置识别目录:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
扩展:
在这里插入图片描述
如果设置为False : 表示不检索 app下templates
在这里插入图片描述
在这里插入图片描述
(四)独立静态文件
在这里插入图片描述
在这里插入图片描述
扩展: app01为识别目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
在线上和项目当中,django使用不是一套静态文件
Apache和Nginx当中都需要配置独立的静态文件路由
1、配置静态根目录
在这里插入图片描述
2、创建app当中的静态目录结构
在这里插入图片描述
3、收集静态文件
python manage.py collectstatic
在这里插入图片描述
在这里插入图片描述
三、view(视图系统)
view简称视图,是一个简单的Python 函数或者类,它接受Web请求并且返回Web响应。
无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中。
(一)FBV和CBV
我们之前写过的都是基于函数的view,就叫FBV(Function base view)。还可以把view写成基于类的CBV格式。
核心知识点:
1.继承 from django.views import View
2.覆写 get和post 方法,(注意传递request参数)
3.路由使用: 模块名.类名.as_view()
在这里插入图片描述
在这里插入图片描述
四、简单的表单处理
(一)请求对象参数
当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。
请求相关的常用值
1、path_info:返回用户访问url,不包括域名
2、method:请求中使用的HTTP方法的字符串表示,全大写表示。
 GET 包含所有HTTP GET参数的类字典对象
 POST 包含所有HTTP POST参数的类字典对象

3、COOKIES:一个标准的Python 字典,包含所有的cookie。
键和值都为字符串。
4、FILES: 一个类似于字典的对象,包含所有的上传文件信息。
FILES 中的每个键为 中的name,值则为对应的数据。注意,FILES 只有在请求的方法为POST 且提交的 带有enctype=“multipart/form-data” 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象。

5、HttpRequest.get_full_path() 方法
  返回 path,如果可以将加上查询字符串。
例如:"/music/bands/the_beatles/?print=true"
在这里插入图片描述
(二)登录案例
1、查看request.method 参数内容
在这里插入图片描述
返回提交的方式,GET 或者POST
2、获取表单提交过来的内容
在这里插入图片描述
3、向页面中返回错误信息
在这里插入图片描述
4、结构优化
在这里插入图片描述
5、重定向到成功界面
在这里插入图片描述
在这里插入图片描述
(三)文件上传
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值