django——入门4

博客主页面开发(完善博客)

博客页面设计

1、页面概要

​ 博客主页面、博客文章内容页面、博客撰写页面;

2、博客主页面

​ 文章标题列表,超链接;

​ 发表博客按钮(超链接);

1> 列表编写思路

​ 取出数据库中所有文章对象;

​ 将文章对象们打包成列表,传递到前端;

​ 前端页面把文章以标题超链接的形式逐个列出;

2> 模板 For 循环

​ {% for xx in xxs %}

​ HTML语句

​ {% endfor %}

3> 具体操作

​ <1>、后台代码:

在这里插入图片描述

<2>、前端代码:

在这里插入图片描述

<3>、刷新页面:

出错:

在这里插入图片描述

原因及解决办法:

在这里插入图片描述

在这里插入图片描述

正确显示:

在这里插入图片描述

3、博客文章页面
1> 页面内容

​ 标题、文章内容、修改文章按钮(超链接);

2> 具体操作步骤

<1>、views.py

​ 在 views.py 里创建一个响应函数;

​ 在函数里创建一个对象,获取article的id;

​ 将获取的对象渲染到模板里;

在这里插入图片描述

<2>、templates

​ 在 templates 下的 blog 文件中创建一个新的 HTML ;

​ 将新设的前端页面路径写到 views.py 里的响应函数内;

​ 撰写前端页面;

​ urls.py 里面配置对应的 url ;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<3>、根据配置的 url 进入相应的页面

在这里插入图片描述

在这里插入图片描述

易出错误

​ (1)、url 网址 写错,忘写 blog,直接写了 article:

在这里插入图片描述

​ (2)、没有编辑文章 3

在这里插入图片描述

<4>、注意事项

​ 重点:URL 传递参数;

​ 参数写在响应函数中 request 后,可以有默认值;

​ URL 正则表达式:r’ ^/article/(?P<article_id>[0-9]+)/$’ ;

​ URL 正则表达式中的组名必须和参数名一致;

4、Django 模板中的超链接配置

​ 把博客主页面里的链接给补全;

1> 超链接目标地址

​ href 后面是目标地址;

​ template 中可以用 " {% url ‘app_name:url_name’ param %} " ;

​ (url 作为关键字,app_name:应用的命名空间的名称,url_name:链接名, param:地址的参数)

​ 其中 app_name 和 url_name 都在 url 中配置;

2> 在配 URL
URL 函数的名称参数

​ 根 urls,写在 include() 的第二个参数位置,namespace = ‘blog’ ;

​ 应用下则写在 url() 第三个参数位置,name = ‘article’ ;

​ 主要取决于是否使用 include 引用了另一个 url 配置文件;

3> 具体操作
<1>、找到根(即myblog)的 urls.py ,添加第二个参数;

在这里插入图片描述

<2>、找到 blog 应用下的 urls.py,在 article 的 url 函数里添加第三个参数;

在这里插入图片描述

<3>、修改 HTML 页面 index;

在这里插入图片描述

<4> 刷新页面

(1)、运行出错:

在这里插入图片描述

(2)、错误原因:

Django 版本的原因(2.0以后的版本)

(3)、解决方案:

​ 第一种:

​ 在myblog 中的 urls.py 的 关于blog的 url 中的第一个参数添加一个变量 ‘blog’ ;

在这里插入图片描述

第二种:

用 path 编辑 url,且要添加变量;

在这里插入图片描述

(4)、成功后的页面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、博客撰写页面开发
1> 页面内容(用表单)

​ 标题编辑栏;

​ 文章内容编辑区域;

​ 提交按钮;

2> 具体操作步骤

<1>、前端:在 blog 建立一个 html 文件 edit_page;

在这里插入图片描述

在这里插入图片描述

<2>、编写两个响应函数,并添加url;

第一:编辑 edit_page 页面的响应函数,并添加 url;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第二:完成表单提交的响应方式

​ 编辑响应函数:
​ 使用 request.POST[ ‘参数名’ ] 获取表单数据;

​ models.Article.objects.create(title, content)创建对象;

​ 涉及 POST 方法提交表单的,前端页面要加上 {% csrf_token %}

(1)、编写响应函数

在这里插入图片描述

(2)、添加url

在这里插入图片描述

(3)、将action的url补充完整

在这里插入图片描述

<3>、出错(安全性错误)

错误一:

(1)、错误:

在这里插入图片描述

(2)、原因及改正

在这里插入图片描述

错误二:

(1)、错误:

在这里插入图片描述

在这里插入图片描述

(2)、错误原因及改正

如果通过 post 来提交表单,必须在前端页面里添加一行代码;

在这里插入图片描述

(3)、正确:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<4>、补全“新文章”的链接

在这里插入图片描述

点击“新文章”,会跳转到新文章的编辑页面:

在这里插入图片描述
在这里插入图片描述

3> 编辑修改文章页面
<1>、两个编辑页面对比:

​ 新文章为空,修改文章有内容;

​ 修改文章页面有文章对象;

​ 文章的 ID;

<2>、具体操作步骤

(1)、修改响应函数,给响应函数 edit_page 添加参数 article_id(在根 myblog 内的 views.py 进行操作);

在这里插入图片描述

(2)、在 urls 加一个 article_id 的参数(在 blog 内的 urls.py 内操作);

在这里插入图片描述

(3)、修改前端页面上的代码(在 blog 内的 article_page.html 和 主页 index.html 内操作);

第一:添加 “修改文章” 的 url;

在这里插入图片描述

第二:在主页的新建文章传一个 0;

在这里插入图片描述

第三:目前成果:

​ 一、

在这里插入图片描述

在这里插入图片描述

​ 二、

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)、继续修改编辑页面:

第一步:在 edit_page.htlm 内添加一个判断;

在这里插入图片描述

刷新后的编辑页面:

在这里插入图片描述

第二步:

前端:把 article 的 id 放在一个隐藏的 input 标签的 value 里;

在这里插入图片描述

后台:在 views.py 的 edit_action 响应函数里获取 id;

​ 其中修改数据(赋值操作);

​ 先:article.title = title

​ 后:article.save()

​ 所以针对数据的操作都是针对对象的操作;

在这里插入图片描述

(5)、验证页面

第一:测试修改文章
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二:测试编写新文章

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

补充

补:格式化代码小技巧

第一种:先点击 Code 再点击 Reformat Code;

在这里插入图片描述

在这里插入图片描述

第二种:Ctrl + Alt +L;

​ 缺点是易与其他快捷键冲突,尤其是QQ快捷键,不过可以自己修改一下;

补:Pycharm 汉化方法

(1)、下载汉化 jar 包,解压

在这里插入图片描述

(2)、将其放在你安装的pycharm 的 lib 目录文件内;

在这里插入图片描述

(3)、重启你的pycharm即可;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值