Django在线留言板demo

环境

ubuntu16.04 + python3 + django1.11

1、创建项目

django-admin.py startproject message

进入项目message

2、创建APP

python manager.py startapp guestbook

项目结构

.
├── guestbook
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── message├── __init__.py├── __pycache__│   ├── __init__.cpython-35.pyc│   └── settings.cpython-35.pyc├── settings.py├── urls.py└── wsgi.py4 directories, 14 files

需要做的事:
配置项目setting 、初始化数据库、配置url 、编写views 、创建HTML文件

项目配置

打开message/settings.py

设置哪些主机可以访问,*代表所有主机
ALLOWED_HOSTS = ["*"]INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','guestbook',   #刚刚创建的APP,加入到此项目中
]#数据库默认用sqlite3,后期可以换成MySQL或者SQL Server等TIME_ZONE = 'PRC'  #时区设置为中国

创建数据库字段

#encoding: utf-8
from django.db import modelsclass Message(models.Model):username=models.CharField(max_length=256)title=models.CharField(max_length=512)content=models.TextField(max_length=256)publish=models.DateTimeField()#为了显示def __str__(self):tpl = '<Message:[username={username}, title={title}, content={content}, publish={publish}]>'return tpl.format(username=self.username, title=self.title, content=self.content, publish=self.publish)

初始化数据库

# 1. 创建更改的文件
root@python:/online/message# python3 manage.py makemigrations
Migrations for 'guestbook':guestbook/migrations/0001_initial.py- Create model Message# 2. 将生成的py文件应用到数据库
root@python:/online/message# python3 manage.py migrate
Operations to perform:Apply all migrations: admin, auth, contenttypes, guestbook, sessions
Running migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying guestbook.0001_initial... OKApplying sessions.0001_initial... OK

配置url

设置项目message/urls.py

from django.conf.urls import url,include  #添加了include
from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^guestbook/', include('guestbook.urls',namespace='guestbook')),   #表示在url地址中所有guestbook的都交给guestbook下面的url来处理,后面的逗号不要省略
]

设置APP的url
如果是初次创建APP,urls.py在APP中一般不存在,创建即可

vim guestbook/urls.py# 内容如下
from django.conf.urls import url
from . import viewsurlpatterns = [url(r'^index/',views.index,name='index'),   #不要忘了逗号
]

编写views

编辑APP中的views.py

from django.shortcuts import render
from django.http import HttpResponseRedirect
from . import models# Create your views here.
def index(request):messages = models.Message.objects.all()return render(request, 'guestbook/index.html', {'messages' : messages})

编写HTML文件

创建APP/templates/guestbook/index.html目录及文件

#使用bootstrap美化了

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>留言板</title><link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous"></head><body><table class="table table-striped table-bordered table-hover table-condensed"><thead><tr class="danger"><th>留言时间</th><th>留言者</th><th>标题</th><th>内容</th></tr></thead><tbody>{% if messages %}{% for message in messages %}<tr class="{% cycle 'active' 'success' 'warning' 'info' %}"><td>{{ message.publish|date:'Y-m-d H:i:s' }}</td><td>{{ message.username }}</td><td>{{ message.title }}</td><td>{{ message.content }}</td></tr>{% endfor %}{% else %}<tr><td colspan="4">无数据</td></tr>{% endif %}</tbody></table> <a class="btn btn-xs btn-info" href="/guestbook/create/">去留言</a></body>
</html>

调试index页面

python manage.py runserver 0.0.0.0:99

打开浏览器访问http://开发机器ip地址:99/guestbook/index/

留言展示页面成功

创建留言页面

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>留言</title><link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous"></head><body><!-- 我是注释 --><h3>留言</h3> <!--h1-> h6--><!--method: POST /GET --><form action="/guestbook/save/" method="POST" novalidate="novalidate">{% csrf_token %}<table class="table table-striped table-bordered table-hover table-condensed"><label>用户名:</label> <input type="text" name="username" placeholder="用户名" /> <br /><br /><label>标  题:</label> <input type="text" name="title" placeholder="标题" /><br /><br /><label>内  容:</label> <textarea name="content" placeholder="内容"> </textarea><br /><br /></table><input class="btn btn-success" type="submit" value="留言"/></form></body>
</html>

配置APP下的url

vim guestbook/urls.pyurlpatterns = [url(r'^index/',views.index,name='index'),   #不要忘了逗号url(r'^create/$', views.create, name='create'),url(r'^save/$', views.save, name='save'),
]

编辑views.py

#先导入时间模块
import datetime#添加create、savedef create(request):return render(request, 'guestbook/create.html')def save(request):username = request.POST.get("username")title = request.POST.get("title")content = request.POST.get("content")publish = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")message = models.Message(title=title, content=content, username=username, publish=publish)message.save()return HttpResponseRedirect('/guestbook/index/')

OK,再次运行,enjoy it!

使用Django开发一个简易的留言板相关推荐

  1. 【留言板】使用Think PHP6+光年模板开发一个简单的留言板

    前言:本文章是使用thinkphp6框架加上光年模板开发的一套留言板,个人感觉特别适合新手有点小基础的同学尝试去实战,文章和代码可能都写得不太好! 工具与环境: VSCode(简称)也可以使用别的 光 ...

  2. 简易在线留言板(上)——树洞留言板

    简易在线留言板(上) 本文章属于原创,如若转载请标明出处: http://blog.csdn.net/FlorenceZKY/article/details/74295704  本系统开发的是一个极简 ...

  3. php mysql 简单留言板_PHP+MySql实现一个简单的留言板

    跟着书学的,代码不是自己写的,但是都能理解,有时间自己去写个好看一点的吼吼吼-(不熟练花了一天的时间- 留言板是接触WEB开发的基础,写一个留言板需要知道前端的一些基础标签,对数据库有一个了解会基础S ...

  4. 怎么用线程刷新 tkinter 进度条_tkinter做一个简易提词板(2)

    书接上文 花果山美男子:tkinter做一个简易提词板​zhuanlan.zhihu.com 上回说到,文字的动态效果还可以用after方法和StringVar来实现,今天我们就用它们来重新制作提词板 ...

  5. 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器...

    [索引页] [×××] 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 作者:webabcd 介绍 Silverlight 2.0 ...

  6. python的Tkinter库简单应用——开发一个简易计算器

    利用python的Tkinter库开发一个简易计算器 文章目录 利用python的Tkinter库开发一个简易计算器 前言 一.实验准备 二.开发步骤步骤 1.引入库 2.界面设计 3.关键--实现T ...

  7. Django+Layui+SQLite+JQuery实现一个简单的留言板

    本次使用到的知识: Django框架的使用 Layui的使用 Jquery的使用 SQLite的使用 实现效果: 目录 功能结构图 准备工作 创建项目 1.创建项目 2.创建App 3.创建对应文件夹 ...

  8. 如何使用小程序云开发实现一个简单的留言板

    简介 本教程将教您如何使用小程序云开发快速构建一个留言板应用程序.您将学习到如何使用云数据库.云函数和云存储等功能,以及如何将它们集成到您的小程序中. 小程序开发教程:微信小程序入门与实战 常用组件A ...

  9. PHP写一个简单的留言板

    要求: 1.留言本,即留言后,能让客户用户查看其留言. 2.留言本该具有用户发表的标题,用户的注册名,发表的内容. 3.所以留言本的实现需要两个模块,一个是静态的html页面,提供表单供用户输入,另一 ...

最新文章

  1. AIWalker是个什么样的号?为什么要推荐呢?聚焦low-level,关注AI最前沿
  2. 怎么修改windows命令行字体大小
  3. Linux下实用的查看内存和多核CPU状态命令
  4. 约数研究pascal程序
  5. php迭代什么意思,PHP中迭代变量的坑
  6. POJ - 1050 To the Max(最大连续子段和,线性dp)
  7. 反编译工具的使用和字节码文件的查看(Binary Viewer)
  8. 2017.4.20 比例简化 思考记录
  9. python动态导入类或函数_Python 动态从文件中导入类或函数的方法
  10. 【回归分析】logistic regresssion中的拟合优度检验(goodness-of-fit test)
  11. 计算机答辩ppt结论,论文总结与致谢ppt_ppt结束致谢_答辩ppt致谢
  12. RGB888转换为RGB565原理及工具
  13. word打出计算机图形符号,word显示所有格式标记
  14. Table表格边框线、样式
  15. 双注入法/开路短路法
  16. 计算机桌面背景设置,电脑桌面背景设置图文教程
  17. 将中文字符串转为拼音
  18. lpop 原子_高负载量的Pd单原子催化剂用于选择性催化加氢反应
  19. 通俗理解事务隔离界别
  20. 视觉检测在激光打码字符检测上的检测案例

热门文章

  1. UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
  2. github issue 搜索_GitHub中Issue的使用
  3. js 正则验证三位小数
  4. Excel如何设置文本框的透明度
  5. 特征选择 - SelectFromModel(根据重要性权重选择特征)
  6. 一个简单的后台管理系统
  7. 一件小事引发的思考--如何学习
  8. Python—SJ—实验6—加密解密文本
  9. 台式计算机电源风扇不转,台式电脑风扇不转了怎么解决?台式电脑风扇不转的原因?...
  10. 腾讯也有今天,这款软件被指抄袭“微信”,腾讯提起上诉