django6

django模板
{%include 'xxx.html' %}
过滤器{{ datetime | date }}
管道嵌套
继承{%extends 'base.html' %}
django里的‘|’是输出的意思 
发表博客
从setting里新建一个blogmanager的app
startapp blogmanager
新建三个页面:
addd.html:
<head>
    <meta charset="UTF-8">
    <title>发表博客</title>
    <script type="text/javascript" charset="utf-8" src="/static/ueditor/ueditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="/static/ueditor/_examples/editor_api.js"></script>
</head>
<body>
<h2>发表博客</h2>
<form action="/blogmanager/addBlog" method="post">
标题 <input type="text" name="title"/><br>
内容 {% csrf_token %}
        <script type="text/plain" id="uploadFile" name="uploadFile">
            <p>欢迎使用UEditor!</p>
        </script>
        <input type="submit" value="通过input的submit提交">
     <input type="submit" value="发表博客">
</form>
<script type="text/javascript">
        var editor_a = UE.getEditor('uploadFile',{initialFrameHeight:500,serverUrl:'/blog/handler'});
    </script>
detail.html:
<head>
    <meta charset="UTF-8">
    <title>发表成功</title>
</head>
<body>
<a href="/blogmanager/show">返回主页</a><br>
标题:{{ blog.title }}<br>
作者:{{ blog.blogUser.blogName }}<br>
创建时间:{{ blog.createTime |date:"Y年m月d日H:i:s" }}
{% autoescape off %}
内容:{{ blog.content }}
{% endautoescape %}
</body>
show.html:
<head>
    <meta charset="UTF-8">
    <title>自定义分页</title>
</head>
<body>
欢迎{{ blog.session.username }}<br>
<a href="/blogmanager/addBlog">发表博客</a>
{% for blog in blogList %}
<a href="/blogmanager/blogDetail/{{ blog.id }}">{{ blog.title }}</a>
作者:{{ blog.blogUser.userName }}&nbsp;
发布时间{{ blog.createTime | date:"Y年m月d日H:i:s" }}
{% endfor %}
<a href="/blogmanager/show/1">首页</a>&nbsp;&nbsp;
{% if prePage > 0 %}
<a href="/blogmanager/show/{{ prePage }}">上一页</a>&nbsp;&nbsp;
{% endif %}
{% if nextPage <= pages %}
<a href="/blogmanager/show/{{ nextPage }}">下一页</a>&nbsp;&nbsp;
{% endif %}
<a href="/blogmanager/show/{{ pages }}">尾页</a>
<form action="/blogmanager/show" method="post">
    {% csrf_token %}
跳转到<input type="text" size="3" name="pageNo"/>
    <input type="submit" value="GO"/>
</form>
</body>
在blogmanager新建urls
from django.urls import path
from blogmanager.views import *
#from . import uecontroller
app_name='bloguser'
urlpatterns=[
    path('addBlog',addBlog),
    path('show/<int:pageNo>',show,name='show'),
    path('show',show,name='show'),
    path('blogDetail /<int:id>',blogDetail)
]
在views里写:
在tools里要重新迁移0001
from django.shortcuts import render,redirect,reverse
from .models import Blog
from blog.models import BlogUser
from datetime import datetime
# Create your views here.
def addBlog(request):
    if request.session.get("username") is None:
        return render(request, "login.html")
    else:
        if request.method=='GET':
            return  render(request,"manager/addd.html")
        else:
            #接受博客内容
            title=request.POST.get("title")
            content=request.POST.get("content")
            print('富文本---',content)
            blog=Blog()
            blog.title=title
            blog.content=content
            #从session中获取用户名
            username=request.session.get("username")
            blog.blogUser=BlogUser.objects.filter(userName=username).first()
            blog.createTime=datetime.now()
            blog.save()
            print('保存成功')
            return redirect("show/1")
分页:paseNo:当前页码;paseSize:每页显示的最大记录数;pages:共多少页
def show(request,pageNo=1):
    if request.POST.get("pageNo") is not None:
        return render(request.POST.get("pageNo"))
    #获取第几页,每页显示的最大记录数select * from tablename limit(pageno-1)*pageSize,pageSize
    pageSize=4
    beginIndex=(pageNo-1)*pageSize
    blogList=Blog.objects.all().order_by("-createTime")[beginIndex:(pageNo-1)*pageSize+pageSize]#从数据库中查询所有数据
    pages=ceil(Blog.objects.count()/4)
    return render(request,"manager/show.html",{"blogList":blogList,"nextPage":pageNo+1,"prePage":pageNo-1,"pages":pages})
def blogDetail(request,id):
    blog=Blog.objects.get(pk=id)
    return render(request,"manager/detail.html",{"blog":blog})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值