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、重定向到成功界面
在这里插入图片描述
在这里插入图片描述
(三)文件上传
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值