Django学习 4

之前我们把主页的页面给写好了,然后我们就可以开始写介绍页面和详情页面了,这时候就需要先新建立一个app名字叫blog,然后我们到settings.py里去注册一下,然后我们就可以开始写数据库格式了,既然是保存博客文章的数据库,那么就需要标题,时间,演示图片,正文这几个类型,创建一个类叫Blog

class Blog(models.Model):
    title = models.CharField(verbose_name='标题', max_length=50)
    date = models.DateField(verbose_name='时间')
    image = models.ImageField(default='default.png', verbose_name='演示图片', upload_to='mage/')
    text = models.TextField(verbose_name='正文')

然后我们去admin.py里注册一下,注意这里的admin.py什么的都要在blog文件夹里找,不能到之前的文件去,当然注册什么的还是得到主文件去,在admin.py里输入以下代码

from . import models
admin.site.register(models.Blog) //就和之前的一样

然后就可以去把数据库给迁移了,具体操作之前就有,我这边就不多说了,然后还是老操作,到views.py里去映射网页还是老样子

def blog(request):
    text = Blog.objects.all()
    return render(request, 'blog.html', context={'text': text})

然后在blog里新建文件夹叫templates,里面放blog.html等一系列网页代码,然后在网页中调用,这个也不多说了,主要是要提一句,我们正常的介绍页面需要显示出一些文本的内容但是不是所有的,所以我们就需要在models.py里设定一个函数来显示正文中的一些内容,并且在内容后面添加…

def short_text(self):
    return self.text[:12] + '.....'

然后只要在html里调用这个函数就可以了

<div>{{ foo.short_text }}</div>

下面就差不多完成了介绍的页面,如下图(添加模板之后的)

在这里插入图片描述

不过还有一点,我们需要去主程序中注册一下,不过这次和原来的有点不一样,打开我们的urls.py,输入下面的代码

path('blog/', include('blog.urls')),

这样我们就默认了在blog文件夹里查找urls.py这个文件,然后用这个文件里的内容来映射到主文件,然后我们需要在blog文件夹创建新的py文件urls.py然后在里面输入下面的代码

from django.urls import path
from . import views

urlpatterns = [
    path('', views.blog),
]

这样我们就把blog/的网页链到了blog.html,基本的页面就完成了

那么我们现在就有新的需求了我要点击其中一篇博客,然后就会跳转到新的详情页面,那我们就要在urls.py里注册新的网页

path('<int:blog_id>/', views.text1),

这个就是如果满足blog_id的规范就进入blog/blog_id这一的页面,然后调用views.text1函数来显示,这个blog_id是一个比较好玩的东西打开migrations文件夹里面有一个0001_initial文件,里面就保存的之前的数据库数据类型,其中就有了id这个类型我们就是使用这个id来判断我们所点击后是进入哪一个页面,然后因为只是详情页面嘛,所以我们就可以直接使用之前的数据库,那么我们就不需要更改models.py的内容,只需要去更改views.py的映射内容

from django.shortcuts import render,get_object_or_404

def text1(request, blog_id):
    text2 = get_object_or_404(Blog, pk=blog_id)
    #text2 = Blog.objects.all()[blog_id-1]
    return render(request, 'blog_text.html',{'text': text2})

我们可以先导入这个包,然后使用get_object_or_404()这个函数来获取到目前所点击到的页面(当然,传入需要两个参数不然就没办法判断了,不过好像可以直接用数组的方式选定到我们需要的)。然后其他的就和原来一样了,就是将一个数组改成一个一个变量,然后只要在blog_text.html里将这些东西进行展示接下来,具体演示如下(套用模板且有小改动)

在这里插入图片描述

具体的内容我也都放到GitHub上了,需要的自取 https://github.com/xipinfan/port (写完睡觉咯)

Django是一个流行的高级Python Web框架,用于快速开发安全、可维护的Web应用。如果你想学习Django,以下是一个基本的学习路径建议: 1. **安装和环境设置**: - 安装Python(推荐使用最新版本) - 安装Django和必要的依赖(如pip, virtualenv或conda) 2. **入门教程**: - 阅读官方文档的快速入门指南(https://docs.djangoproject.com/en/stable/getting-started/) - 通过官方教程创建第一个Django项目(Hello World应用) 3. **基础知识**: - Django MVC(模型-视图-控制器)架构理解 - 模型(Model):数据库操作和ORM(Object-Relational Mapping) - 视图(View):处理HTTP请求,调用模型并返回响应 - 控制器(Controller):前端界面的逻辑处理,但实际在Django中很少单独使用 4. **模板系统**: - 学习Django模板语言(Template Language),如何渲染数据到HTML页面 5. **URL路由和视图**: - Django URL patterns,如何定义应用的URL结构 - 函数视图和类视图的区别 6. **表单处理**: - Django Forms API,如何创建和验证用户输入 7. **认证和授权**: - 设置用户身份验证(Authentication)和权限管理(Authorization) 8. **中间件(Middleware)**: - 了解Django的内置中间件和自定义中间件的使用场景 9. **模板继承和模板标签**: - 更深入地了解模板的继承和自定义过滤器和标签 10. **部署**: - 选择部署方法(如Gunicorn, Nginx等),并了解Docker部署 11. **实战项目**: - 开始构建小型应用,如博客、论坛或库存管理系统,以巩固所学知识 **相关问题--:** 1. Django的MVC架构具体是如何工作的? 2. 什么是Django的表单验证?有哪些内置验证方法? 3. 如何在Django中实现自定义的认证系统?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值