django实战模拟博客系统
数据库代码块
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
# Create your models here.
class BlogArticles(models.Model):
title = models.CharField(max_length=30)
author = models.ForeignKey(User,related_name="blog_posts")
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
class Meta:
ordering = ("-publish",)
def __str__(self):
return self.title
显示文章标题代码块
from django.shortcuts import render
from .models import BlogArticles
def blog_title(request):
blogs = BlogArticles.objects.all()
return render(request,'blog/titles.html',{"blogs":blogs})
公共模板base.html
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
</head>
<body>
<div class="container">
{% block content %}
{% endblock %}
</div>
<script src="/static/jquery.min.js"></script>
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</body>
</html>
显示文章标题
unblog的url中
url(r'^blog/', include('blog.urls')),
blog的url中
url(r'^blog_title/', views.blog_title),
视图函数
from .models import BlogArticles
def blog_title(request):
blogs = BlogArticles.objects.all()
return render(request,'blog/titles.html',{"blogs":blogs})
titles。html
{% extends "base.html" %}
{% block title %}blog titles{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm" ><h1>我的博客</h1></div>
<div class="row">
<div>
<ul>
{% for blog in blogs %}
<li><a href="#">{{ blog.title }}</a></li>
{% endfor %}
</ul>
</div>
</div>
{% endblock %}
显示结果

查看文章内容
映射关系
url(r'^blog_title/$', views.blog_title),
url(r'^blog_title/(?P<nid>\d)/$', views.blog_article),
前端中的title,html更改项目
{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.id }}>>>{{ blog.title }}</a></li>
{% endfor %}
函数部分
def blog_article(request,nid):
# article=BlogArticles.objects.get(id=nid)
article= get_object_or_404(BlogArticles,id=nid)
pub = article.publish
return render(request,'blog/content.html', {"article":article,"pub":pub})
content.html前端代码
{% extends "base.html" %}
{% block title %}blog articel{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm"><h1>{{ article.title }}</h1></div>
<div class="row">
<div>
<P class="text-center">
<span>{{ article.author.username }}</span>
<span>{{ pub }}</span>
</P>
</div>
<div>{{ article.body }}</div>
</div>
{% endblock %}
最后结果

url代码
url(r'^register/$', views.user_register, name='user_register'),
注册的视图函数
def user_register(request):
if request.method == 'GET':
user_form = RegistrationForm()
return render(request, 'account/register.html', {"form": user_form})
if request.method == 'POST':
user_form = RegistrationForm(request.POST)
print(">>>",request.POST)
if user_form.is_valid():
new_user = user_form.save(commit=False)
',new_user)
new_user.set_password(user_form.cleaned_data['password'])
',new_user)
new_user.save()
return HttpResponse('注册成功')
else:
return HttpResponse('注册失败')
else:
user_form = RegistrationForm()
return render(request, 'account/register.html', {"form": user_form})
html验证的代码
注册时的代码html的代码
{% extends "base.html" %}
{% load staticfiles %}
{% block title %}用户注册{% endblock %}
{% block content %}
<div class="row text-center vertical-middles-sm">
<h1>登陆注册页面</h1>
<p>如果账户已存在请<strong><a href="{% url 'account:user_login' %}">登陆</a></strong></p>
<p>或者,请注册</p>
<form class="form-horizontal" action="." method="post">{% csrf_token %}
<div class="form-group">
<label for="{{ from.username.id_for_lable }}" class="col-md-5 control-label">Username</label>
<div class="col-md-6 text-left">{{ form.username }}</div>
</div>
<div class="form-group">
<label for="{{ from.email.id_for_lable }}" class="col-md-5 control-label">Email</label>
<div class="col-md-6 text-left">{{ form.email }}</div>
</div>
<div class="form-group">
<label for="{{ from.password.id_for_lable }}" class="col-md-5 control-label">Password</label>
<div class="col-md-6 text-left">{{ form.password }}</div>
</div>
<div class="form-group">
<label for="{{ from.password.id_for_lable }}" class="col-md-5 control-label">Confirm Password</label>
<div class="col-md-6 text-left">{{ form.password2 }}</div>
</div>
<input type="submit" class="btn btn-lg btn-primary" value="注册">
</form>
</div>
{% endblock %}
未完待续
django实战模拟博客系统的更多相关文章
- Django:(博客系统)使用使用mysql数据->后台管理tag/post/category的配置
Django后台一般是不需要人为的去开发的,因为django已经通过配置实现哪些模块是后台需要管理,如何排序,列表展示哪些列,列显示名称,是否为空(默认值),过滤条件,分页页数,列表中哪些项可编辑等等 ...
- Django快速搭建博客系统
Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6 https://www.python.org/ Django 2.0 https://www. ...
- 【完全开源】Django多人博客系统——支持MarkDown和tinyMce
目录 说明 功能 如何使用 说明 这是一个用Django开发的多人博客系统,功能简单,但完全满足公司内部或个人的博客使用需求.支持普通富文本编辑器(tinyMCE)和MarkDown编辑器 由于嫌弃D ...
- Django:(博客系统)使用使用mysql数据&创建post/category/tag实体,并同步到数据中
背景: 之前也读过一些关于django的一些书,看过别人写的一些博客系统.但是总有一种看别人的都会,但自己写不出来的感觉,于是为了加深对django的学习就开始动手学习了. 环境搭建: 环境:使用py ...
- Django实现的博客系统中使用富文本编辑器ckeditor
操作系统为OS X 10.9.2,Django为1.6.5. 1.下载和安装 1.1 安装 ckeditor 下载地址 https://github.com/shaunsephton/django-c ...
- 动手实践记录(利用django创建一个博客系统)
1.添加一个分类的标签,和主表的关系是 外键 class Category(models.Model): """ 分类 """ name = ...
- 用Python和Django实现多用户博客系统(二)——UUBlog
这次又更新了一大部分功能,这次以app的形式来开发. 增加博客分类功能:博客关注.推荐功能(ajax实现) 增加二级频道功能 更多功能看截图及源码,现在还不完善,大家先将就着看.如果大家有哪些功能觉的 ...
- 用Python和Django实现多用户博客系统——UUBlog
又过了一周,把代码整个的优化和完善了一下,也把TBlog更名为UUBlog.这次基本是把上次的整个更新了一下具体的功能大家可以下载后自己看看说一下主要的变化增加了频道表.博客表. 功能方面主要有增加频 ...
- Django:(博客系统)添加文章(中文)出现UnicodeEncodeError乱码
添加文章时出现了一个UnicodeEncodeError乱码问题 在添加文章时,抛出了异常: 解决方案,修改manage.py(添加import sys reload(sys) sys.setdefa ...
随机推荐
- win10 64 使用 visual studio 2017 搭建汇编开发环境
转自http://blog.csdn.net/sinat_27382047/article/details/70339455 插件 vs2015的汇编语法高亮插件(安装就行)这玩意找了我很久= = h ...
- IO流-学习使人快乐2
io流原理总结https://www.cnblogs.com/loong-hon/p/4890232.html io流代码整理https://www.cnblogs.com/whgk/p/532656 ...
- HDU4466 Triangle 计数 容斥原理
原文链接https://www.cnblogs.com/zhouzhendong/p/HDU4466.html 题目传送门 - HDU4466 题意 多组数据,每次询问一个数 $n(n\leq 5\t ...
- BZOJ3862 Little Devil I 树链剖分
原文链接http://www.cnblogs.com/zhouzhendong/p/8081514.html 题目传送门 - BZOJ3862 题意概括 一棵树,n个点,边权为黑或者白,支持3重操作: ...
- P1052 过河 线性dp
题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...
- 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序 ...
- day27 软件开发规范,以及面相对象回顾
面向对象所有内容回顾: # 面向对象 # 类 :一类具有相同属性和方法的事物 #类的定义:class #类中可以定义的方法种类: #普通方法 self 对象 #类方法 cls @classmethod ...
- react部署
https://www.cnblogs.com/jackson-zhangjiang/p/10095892.html React项目搭建与部署 React项目搭建与部署 一,介绍与需求 1.1,介 ...
- linuxDNS配置
DNS配置 vim /etc/resolv.conf nameserver 114.114.114.114
- 【JavaScript】对象
No1: typeof操作符获取对象的类型 null的类型是object,Array的类型也是object,如果我们用typeof将无法区分出null.Array和通常意义上的object——{}. ...