运用Django、MySQL、HTML、JS、Ajax模拟开发博客系统(5)

本文介绍如何使用Django框架创建一个简单的博客系统,包括登录验证、发布博客等功能,并详细讲解了从模型定义到视图处理的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完成功能当没有登陆的时候是访问不到a.html的必须要登陆才能看到

我们创建两个页面,放在welcome,中一个a.html,一个b.html

 

  • 121731_SAyG_3764483.png
  • 121735_zEts_3764483.png

接着在    views.py中写函数

  • 121901_MdFm_3764483.png

在welcome.html中添加代码并在BlogUser/urls.py内配置路径

  • 122212_UfQS_3764483.png
  • 122304_oJw9_3764483.png

 完成发布博客系统(增删改查)

在blog下新建一个名为BlogA的python包

  • 130437_W8Uf_3764483.png
  • 130515_dGih_3764483.png

在BlogA里,我们需要将BlogUser下的apps和admin粘贴到BlogA包下,修改apps内的name=‘BlogA’

  • 131426_6fAD_3764483.png

在BlogA下新建models、urls和views,注意不要写错单词

  • 134140_YWdF_3764483.png

修改settings.py下 INSTALLED_APPS

  • 140207_IRc6_3764483.png

在BlogA下models创建一个模型

  • from django.db import models
    from BlogUser.models import BlogUser
    # Create your models here.
    class Blog(models.Model):
        title=models.CharField(max_length=20,null=True)
        context = models.CharField(max_length=500,null=True)
        #默认当前时间
        createDate = models.DateTimeField(null=True)
        #BlogUser.BlogUser app.modelname
        BlogUser = models.ForeignKey('BlogUser.BlogUser',on_delete=None)

创建数据库表

  • 1、142901_B2I1_3764483.png
  • 2、142912_5YFE_3764483.png
  • 3、142951_SC1R_3764483.png

操作完成之后我们会发现数据库中已新增一个名为bloga_blog的表

  • 143329_KcHd_3764483.png

接下来我们需要创建一个发布博客的页面

首先,在welcome.html里增加一个发布博客的连接

  • 154015_iNTD_3764483.png

在templates下新建一个名为fabu.html

  • 144956_3XhZ_3764483.png

在fabu.html里编写以下代码

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>欢迎{{ user.username }}发布博客...</h1>
    <span style="color: red">{{ msg }}</span>
    <form action="/BlogA/fabu" method="post">
        {% csrf_token %}
        <p>标题:<input name="title" type="text" style="width: 500px"></p>
        <p>内容:<textarea name="context" style="width: 500px;height: 300px">
    
                </textarea></p>
        <p><input type="submit" value="确认发布"></p>
    </form>
    </body>
    </html>

在blog下urls.py中配置路径

  • 151641_Euq1_3764483.png

在BlogA下urls.py中配置路径

  • 154140_IClM_3764483.png

在BlogA下views.py中创建fabu函数

  • from django.shortcuts import render,redirect,reverse
    from .models import *
    from django.http import HttpResponse
    import time,datetime
    
    def fabu(request):
        user = request.session.get('user', None)
        if request.method=='GET':
            #进到BlogA中的发布
            if user is not None:
                return render(request,'fabu.html',{'user': request.session.get('user', None)})
            else:
                return render(request,'login.html')
        elif request.method=='POST':
            blogA=Blog()
            blogA.title=request.POST.get('title')
            blogA.context=request.POST.get('context')
            blogA.createDate=datetime.datetime.now()
            uid= request.session.get('user')['id']
            bloguserset=BlogUser.objects.filter(pk=uid).all()
            blogA.BlogUser=bloguserset.first()
            blogA.save()
            ret={'msg':'发布成功','user':request.session.get('user')}
            return render(request,'fabu.html',ret)

现在我们就可以登陆后发布博客并保存到数据库中

  • 163516_jOIg_3764483.png
  • 163616_57EZ_3764483.png

如有错误之处,欢迎评论指出

 

 

 

转载于:https://my.oschina.net/u/3764483/blog/1811315

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值