Python+Django搭建自己的blog网站

首先我们将以下面两个示例为例,详细讲解“Python+Django搭建自己的blog网站”的完整攻略。

示例1

1. 创建项目和应用

首先需要安装Django,可以通过命令行输入pip install Django来进行安装。安装完成后,我们创建一个Django项目,可以通过输入如下命令创建:

django-admin startproject myblog

接着我们创建一个应用,用于实现blog的功能:

cd myblog
python manage.py startapp blog

2. 数据库模型设计

blog/models.py文件中定义博客文章的字段,例如文章标题、发布日期、文章内容等:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200, verbose_name='标题')
    pub_date = models.DateTimeField('发布日期')
    content = models.TextField(verbose_name='正文')

    def __str__(self):
        return self.title

3. 视图和模板设计

在blog应用中创建视图和相应的HTML模板,用于展示博客文章等信息。例如我们可以创建一个blog/views.py文件,定义视图函数:

from django.shortcuts import render
from .models import Post

def index(request):
    posts = Post.objects.all()
    return render(request, 'blog/index.html', {'posts': posts})

接着在blog/templates/blog/index.html文件中编写HTML模板,用于展示文章列表:

{% for post in posts %}
    <h1>{{ post.title }}</h1>
    <p>{{ post.pub_date }}</p>
    <p>{{ post.content }}</p>
{% endfor %}

4. URL配置

配置应用的URL,将请求转发到定义好的视图中。可以在应用的blog/urls.py文件中编写URL配置:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

并在项目的myblog/urls.py文件中包含应用的URL配置:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

5. 启动服务器

最后我们可以通过以下命令启动Django服务器,查看我们的博客网站:

python manage.py runserver

在浏览器中输入http://localhost:8000/blog即可访问我们的博客网站。

示例2

1. 创建项目和应用

同样首先需要安装Django,输入pip install Django来进行安装。安装完成后,我们创建一个Django项目,可以通过输入如下命令创建:

django-admin startproject myblog

接着创建一个应用,用于实现blog的功能:

cd myblog
python manage.py startapp blog

2. 数据库模型设计

blog/models.py文件中定义博客文章的字段,例如文章标题、发布日期、文章内容等:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200, verbose_name='标题')
    pub_date = models.DateTimeField('发布日期')
    content = models.TextField(verbose_name='正文')

    def __str__(self):
        return self.title

3. 视图和模板设计

在blog应用中创建视图和相应的HTML模板,用于展示博客文章等信息。例如我们可以创建一个blog/views.py文件,定义视图函数:

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Post

class PostListView(ListView):
    model = Post
    template_name = 'blog/index.html'
    context_object_name = 'posts'

class PostDetailView(DetailView):
    model = Post
    template_name = 'blog/detail.html'
    context_object_name = 'post'

接着在blog/templates/blog/index.html文件中编写HTML模板,用于展示文章列表:

{% for post in posts %}
    <h1>{{ post.title }}</h1>
    <p>{{ post.pub_date }}</p>
    <p>{{ post.content }}</p>
{% endfor %}

blog/templates/blog/detail.html文件中编写HTML模板,用于展示单篇文章内容:

<h1>{{ post.title }}</h1>
<p>{{ post.pub_date }}</p>
<p>{{ post.content }}</p>

4. URL配置

配置应用的URL,将请求转发到定义好的视图中。可以在应用的blog/urls.py文件中编写URL配置:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.PostListView.as_view(), name='index'),
    path('<int:pk>/', views.PostDetailView.as_view(), name='detail'),
]

并在项目的myblog/urls.py文件中包含应用的URL配置:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

5. 启动服务器

最后我们可以通过以下命令启动Django服务器,查看我们的博客网站:

python manage.py runserver

在浏览器中输入http://localhost:8000/blog即可访问我们的博客网站,并在文章列表中点击链接查看单篇文章的详细内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+Django搭建自己的blog网站 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django+celery +rabbitmq

    celery是一个python的分布式任务队列框架,支持 分布的 机器/进程/线程的任务调度。采用典型的生产者-消费者模型 包含三部分:1. 队列 broker :可使用redis ,rabbitmq ,或关系数据库作为broker 2.处理任务的消费者workers : 队列中有任务时就发出通知,worker收到通知就去处理 3.任务结果存储 backen…

    Django 2023年4月13日
    00
  • Django框架之给客户端返回数据

    在Django框架中,我们可以通过视图函数返回响应对象来给客户端返回指定的数据。 接下来我将给大家简述一下如何利用响应对象给客户端返回指定数据。 1. 自定义响应对象 第一种方式: from django.http import HttpResponse, JsonResponse# 自定义响应对象 def index(request): # 第一种方式构建…

    Django 2023年4月12日
    00
  • Django中pycharm中 报错 —ValueError: The field admin.LogEntry.user was declared with a lazy reference to ‘system.sysuser’, bu

    问题是:已经在settings.py文件中注册过app仍旧提示没有安装,并且使用makegirations命令时会抛出如下异常 解决方法: 找到自己的python3.x,进入site-packages/django/contrib/admin/migrations文件目录下,除了__init__.py文件,其他的全 部删除。(注意,切勿把__init__.p…

    Django 2023年4月11日
    00
  • Django进阶(一)

    Url进阶 mysit/mysit/urls.py from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r’^admin/’, admin.site.urls), ] # urlpatterns=[ # url(正则表达式,视图函数,参数,…

    Django 2023年4月11日
    00
  • Django实现单用户登录的方法示例

    下面是“Django实现单用户登录的方法示例”的完整攻略: 简述 简单单一用户系统是网络应用程序中的常见需求。为了降低开发成本和提高开发效率,一般采用现成的框架和工具进行开发。Django是一款开发Web应用程序的高级Python框架,提供了一系列功能齐备的组件,支持单一用户系统的快速开发。本文将介绍Django实现单用户登录的方法示例。 示例一:基于Dja…

    Django 2023年5月16日
    00
  • Django–ORM 多表查询

    一 . 建立外键    一对一建立外键 外键名称 = models.OneToOneField(to=’要连接的类名’, to_field=’字段’)   一对多建立外键 外键名称 = models.ForeignKey(to=’要连接的类名’,to_field=’字段’) # 外键要写在一对多的 那个多的类 下面,比如一个老师对应很多学生,外键就要写在学生…

    2023年4月10日
    00
  • Django组件总结

    分页器的使用 分页器在页面中非常常见,当数据库条数数据过多时,页面一次性显示不好看时,我们可以使用分页器,将数据分几次显示。 1.1 数据库内插入大量数据 Booklist=[] for i in range(100): Booklist.append(Book(title=”book”+str(i),price=30+i*i)) Book.objects.…

    Django 2023年4月11日
    00
  • django框架学习:二十一.admin列表优化和排序

    今天学习一下列表优化和排序 ModelAdmin django的options.py里面 ModelAdmin类定义的参数可以设置admin后台列表页面,相关的参数如下      排序字段 后台列表页面,如果想按某个字段排序,可以加个ordering参数      刷新页面后,就是降序了 列表分页 列表页默认是设置的100个记录,我们也可以修改下设置成默认每…

    2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部