django基础----django中的app应用

一、Django中的app应用

app(application)就是应用的意思,当我们的项目足够大的时候,我们将功能单独分成多个app进行开发。
Django本身是鼓励开发者进行相对独立的项目开发的,因此我们建议以后使用app进行开发。

1. 通过命令行创建app应用

(1)、命令: python manage.py startapp app名称
在这里插入图片描述
(2)、在 settings.py 文件 INSTALLD_APPS 列表中注册app
在这里插入图片描述

2. 使用pycharm创建App应用

在这里插入图片描述
在这里插入图片描述
并且会在 settings.py中的INSTALL_APPS中自动添加配置。

二、App内部的独立文件

3. 子路由(独立url)

之前我们将所有的路由都放到了主urls当中,django支持我们在每个app应用中编写自己的子路由(url)
(1)、编写自己的子路由
在这里插入图片描述
(2)、主路由包含子路由
在这里插入图片描述
(3)、访问路径时,主路径+子路径
在这里插入图片描述

4. 独立模板文件

在外层的templates中和app01、app02中分别创建index.html,默认访问外层templates中的index.html文件,如果templates中不存在,则按照settings.py中
App的注册顺序进行加载。
4. 独立模板文件
在外层的templates中和app01、app02中分别创建index.html,默认访问外层templates中的index.html文件,如果templates中不存在,则按照settings.py中
App的注册顺序进行加载。
在这里插入图片描述
然后在settings.py中设置:
在这里插入图片描述
如果想要访问app01中的lw2.html文件,则需要在app01中的views.py文件设置路径:
在这里插入图片描述
此时访问到的就是app01中的templates中的lw2.html文件,否则会直接访问外部的templates中的内容。

5. 独立静态文件

在这里插入图片描述
每一个子app下面都建立一个static文件,将需要导入的素材放入一个文件夹中,使用时的路径为‘app01/1.jpg’.
创建一个html文件,为了加载app01中的图片:
在这里插入图片描述
在app01中定义视图函数:
在这里插入图片描述
再在子路由中导入路径:

urlpatterns=[
	path('lw2/',views.lw2)
]

就可以通过浏览器访问到图片。
注意:
在线上和项目当中,django使用不是一套静态文件
Apache和Nginx当中都需要配置独立的静态文件路由

三、登录功能

先设置子路由和一个实现登录功能页面:login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
<form action="/app01/login/" method="post">
    {% csrf_token %}
    <p>
        用户名:<input type="text" name="username">
    </p>
    <p>
        密码:<input type="password" name="pwd">
    </p>
    <p>
        <input type="submit" value="登录">
    </p>
    <span style="color: red">{{ error_msg }}</span>
</form>
</body>
</html>

1、查看request.method 参数内容

在app01的views.py中,定义视图函数:
在这里插入图片描述
就可以返回login页面表单的提交方式为POST还是GET.

2、获取表单提交过来的内容

在这里插入图片描述
通过request.POST.get()方法可以返回用户登录时的信息,根据信息来判断和进行下一事件。
如果登录信息与数据库中信息不相匹配,则重新返回新的登录页面。

3、向页面中返回错误信息

在这里插入图片描述
此功能是在上一个的基础上加了一个反向传递参数,若登录失败则向html页面传递一个error_msg参数,用来提醒用户登录问题。

4、重定向到成功界面

在这里插入图片描述
先在views.py中导入redirect包,在创建一个登录成功后的页面success.html,利用重定向功能在登录页面成功后可以跳转到此页面。

四、视图系统

一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。
响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。
无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中。

6、视图系统 CBV 和FBV

1.FBV : 基于函数的视图。
2.CBV: 基于类的视图。
(1)创建视图类步骤:
① 创建一个类继承 from django.views import View。
②覆写(重写) get() 、post() 方法。
1)当浏览器是get请求的时候,默认调用get() 方法。
2)当浏览器是post请求的时候、默认调用的是post()方法。
3)注意: get()、post() 方法 必须要声明出形参(request)。
③路由中使用方式: views.类名.as_views()
④注意: CBV 和FBV 同级的,并且根据个人习惯使用不同方式。

五、MTV和MVC

1.MTV :
(1)M : model 数据模型,例如 orm中的模型类。
(2)T: templates 模板: 例如 html页面。
(3)V: view 视图: 使用函数 例如: CBV 、FBV。
2.MVC :
(1)M: model 数据模型,例如 orm中的模型类。
(2)V: view 视图: 对应MTV中的 T
(3)C:controller 控制器:对应 MTV 中的 V。

3.Django中的MTV 是根据MVC模式演变过来的。
4.使用MVC 或MTV 模式的好处,解耦合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值