Django cms 搭建前期准备学习

本文详细介绍了如何在Django框架中构建一个简单的评论系统,包括models层定义、admin层注册、views层表单处理及HTML页面展示。通过具体代码示例,展示了如何实现评论的提交、保存以及页面上的显示。

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

1.modules层 添加新的类 赋值类型  poeple是txt类型  form是表单类型

class People(models.Model):
    name = models.CharField(null=True, blank=True, max_length=200)
    job = models.CharField(null=True, blank=True, max_length=200)

    def __str__(self):
        return self.name
class Comment(models.Model):
    name = models.CharField(null=True, blank=True, max_length=300)
    comment = models.TextField()
    time = models.CharField(null=True, blank=True, max_length=50)
    def __str__(self):
        return self.name

2.如果需要后台查看 可以在admin层添加register

from ganji.models import People,Comment
admin.site.register(People)
admin.site.register(Comment)

3.views层添加 form表单 从forms继承

from django.shortcuts import render,redirect
from ganji.models import Comment
from django import forms
class CommnetForm(forms.Form):
    name = forms.CharField(max_length=50)
    comment = forms.CharField()

创建My_Blog views 层视图

def My_Blog(request):

    content_list = {}


    if request.method == 'POST':
        form_list = CommnetForm(request.POST)
        print(form_list)
        if form_list.is_valid():
            name = form_list.cleaned_data['name']
            comment = form_list.cleaned_data['comment']

            c = Comment(name=name,comment=comment,)
            c.save()
            return redirect(to='My_Blog')
    else:
        form_list = CommnetForm
    blog_list= Content.objects.all()
    comment_list = Comment.objects.all()
    content_list['blog_list'] = blog_list
    content_list['comment_list']= comment_list
    content_list['form_list'] = form_list
    blog_page = render(request, 'My_Blog.html', content_list)
    return blog_page

其中注意 redirect重定向时  需要在url层给你的url添加 name 

url(r'^My_Blog/', My_Blog,name='My_Blog'),

才能正常重定向

 

HTML 测试效果:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My blog</title>
    <link rel="stylesheet" href="{% static '/css/semantic.css'%}">#本人用的是semantic的UI 比较简单
    <script src="{% static 'js/jquery.min.js'%}"></script>#不用jqurey的同学不用加这行
    <script src="{% static 'js/semantic.js' %}"></script>
</head>
<body>
<div class="ui statistics">
  <div class="teal statistic">
    <div class="value">
      27
    </div>
    <div class="label">Views</div>
  </div>
</div>

<h2>Comments area</h2>
{% for comment in comment_list %}

    <div class="ui comments">
  <h3 class="ui dividing header">Comments</h3>
  <div class="comment">
    <a class="avatar">
      <img src="{% static "/images/0001.jpg"%}">
    </a>
    <div class="content">
      <a class="author">{{ comment.name }}</a>
      <div class="metadata">
        <span class="date">2:00 pm</span>
      </div>
      <div class="text">{{ comment.comment }}</div>
      <div class="actions">
        <a class="reply">Reply</a>
      </div>
    </div>
  </div>
    </div>

{% endfor %}
<form class="ui form" method="post">

{{ form_list.as_p }}    #as_p方法可以把每个form 变成一个p标签
    {% csrf_token %}    #添加csrftoken才能正常访问

<button class="ui button" type="submit">Submit</button>

</form>

</body>
</html>

转载于:https://my.oschina.net/fjwapp/blog/1586293

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值