Django2.4 博客项目总结

1 实现一个功能总体的思路

1.1 先配置URL

这个url最好见名义,例如blog/index/1 这个url表示的blog这个app下的主页第一页。

1.2 然后写模板

1.确定用哪些数据,先不要管这些数据是怎么获得,直接用就行了。
2.注意DTL模板的排版格式,可以通过全选 ctrl+shift+f 进行格式化代码,使得模板看的层次分明。
3.先写的模板是一个最简单的模板,不需要考虑特殊情况,满足普遍情况的需求即可。

1.3 写视图函数

1.确定是否需要url传入参数,如果需要,必须使得url配置的变量和视图函数的参数名字完全相同。
2.视图函数向模板中传入的数据,是用字典的形式传入的,我喜欢以这样的排版方式传入数据字典。这样方便看和写注释/

return render(request, 'blog/index.html', {'articles': articles,  # 当前分页的文章
                                               'pages_num': range(1, pages_num + 1),  # 从1到page_num的列表
                                               'current_page': page,  # 当前的页码
                                               'previous_page': previous_page,  # 下一页页码
                                               'next_page': next_page,
                                               })

1.4 逐步推进

逐步进行对模板和视图函数的增加功能,达到最后的效果。

1.5 注意的小知识点

  1. 关于项目路径当前的项目结构
    在这里插入图片描述

(1)对于项目的所有的文件来说,项目的默认路径是整个项目的文件夹所在地。
例如 CSDN目录下的mysite项目下,有mysite目录和blog这个app目录。
/mysite/mysite/urls.py这个文件通常需要导入blog/urls,默认路径就是/mysite。可以直接from blog import views 更加方便。以默认路径写pycharm可能会提示报错不理解说这个路径找不到,不用管他,运行的时候就好了

#当前项目文件夹为默认路径
from blog import views 

(2).表示当前目录,…表示上一层目录。
(3)在blog这个app的admin.py里导入模型类Article,此时默认的路径是整个项目。因此有两种导入方法

# 用当前所在目录导入
from .models import Article
# 用项目默认路径导入
from blog.models import Article

(4)普通的python程序里默认路径就是.。但是在Django里默认路径不等于.。默认路径就是当前项目所在文件夹,.表示当前文件所在的文件夹。

2 url配置

2.1 url配置的映射方法

1.项目的一级url直接映射到某个app的views.py下的某个函数。(不推荐这样使用)
(1) 有一个helloworld这个app,他的views.py下有这样的函数.
在这里插入图片描述
(2)项目urls.py里这样写

from helloworld.views import index

path('helloworld/', index),

2.项目的一级url映射到某个app的urls.py,二级目录映射到本app.views.py的某个函数。
(1)有一个blog这个app,他的views.py下有这样的函数。在这里插入图片描述
(2)blog/urls.py里这样写表示二级url段。在这里插入图片描述
(3)mysite/urls.py里这样写表示一级url段。
此时就不需要import语句了。

path('blog/', include(('blog.urls', "blog"), namespace="blog")),

(4)最后访问的可以是127.0.0.1/一级url段/二级url段/

2.2 url配置的各个参数

这里讨论的就是第二种url映射的方法。第一种方法很简单,第一个参数是url段,第二个参数是视图函数。
在这里插入图片描述
1.在项目urls.py里。
(1)第一个参数一级url段。
(2)第二个参数返回一个include对象。include((‘app名.url’,app名),namespace=‘自定义的命名空间。’)
2.在app的urls.py里
(1)第一个参数二级url段。
(2)第二个参数试图函数名。
(3)第三个参数url的名字,用于在app里确定一个特定的url名。
3.这样就可以在模板里通过 命名空间:app内的url名 唯一确定一个url。

2.3 url配置的函数

1.普通的path函数。
2.re_path函数。
(1)可以在url段里传递正则表达式。
(2)可以通过(?P<变量名>)向视图函数里传递变量

3 视图配置

3.1 函数参数

(1)request请求必须有。
(2)自定义的参数需要从url的正则表达式里传进来。

3.2 函数返回值

(1)返回静态页面。
(2)返回模板并且传递数据。

4 模板配置

4.1 常用的模板标记

1.变量使用。

2.if else endif语句。

{% if condition1 %}
   ... display 1
{% elif condiiton2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

3.for in语句。

{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}

4.a标签的link属性。可以在url里通过 命名空间:url名字的方式指定跳转到的url,同时为他指定参数。

            <li><a href="{% url 'blog:index' num %}">{{ num }}</a></li>

5.更多模板标记可以查看官方文档
链接

4.2 模板里表单的使用

1.表单的全局属性。
(1)action指定提交的页面
(2)method指定post还是get方法提交表单。

<form action="{% url 'blog:index' 1 %}" method="post" class="form-horizontal">

2.表单元素的组成。
会向指定页面提交一个表单,表单是以字典的方式存在的。键是name,值是对应的value

            <input type="text" name="title" value="{{ article.title }}">

3.表单提交的效果。
可以通过视图函数对request的请求进行操作。
视图函数里通过request.POST获得提交的表单。

request.POST.get('title', '')

5. 模板的美化

5.1 Bootstrap导入

1.CDN导入
2.本地导入

5.2 项目里用到的Bootstrap样式

1.表单
2.上一页,下一页
3.分页

6.最后的项目管理

6.1 提交到github

git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:HuangDDU/DjangoProjects.git
git push -u origin master

添加好项目文件夹后

git add .\mysite\
git commit -m "blog"
git push -u origin master

6.2 我的github,希望大家点赞,嘻嘻

github链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值