新建jangostart项目

使用manager.py新建app即单独的应用

创建一个message应用

manage.py@djangostart > startapp message

如果app新建多了都在djangostart下,为了区分apps,新建apps目录将message拖入apps文件夹中

引入message需要

From apps.message import views,如果觉得麻烦可以将apps source root

进入django的项目目录,运行会报错

(testvir2) D:\python\djangostart>

Source root配置到settings中

安装mysql驱动

(testvir2) D:\python\djangostart>pip install mysql-python

报错:下载驱动

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

下载MySQL_python-1.2.5-cp27-none-win_amd64.whl 拷贝到虚拟环境当前目录

运行安装

如果要用python3进行开发需要用mysqlclient,接口其实是一样的

配置templates为相对路径:配置settings文件

'DIRS': [os.path.join(BASE_DIR, 'templates')],

Error fetching command 'collectstatic': You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.

Command 'collectstatic' skipped

把static目录加入settings.py配置文件中否则css样式无法正常加载

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]

使用manage.py生成django默认表结构

makemigrations

migrate

设计关于留言板message的models

Settings文件中注册apps.message

# _*_ coding:utf-8
from __future__ import unicode_literals from django.db import models # Create your models here.
class UserMessage(models.Model):
name = models.CharField(max_length=20, verbose_name=u"用户名")
email = models.EmailField(verbose_name=u"邮箱")
address = models.CharField(max_length=100, verbose_name=u"联系地址")
message = models.CharField(max_length=500, verbose_name=u"留言信箱") class Meta:
verbose_name = u"用户留言信箱"

根据models生成表

makemigrations message

migrate message

查看表结构

留言板views.html

# _*_ coding:utf-8 _*_
from django.shortcuts import render # Create your views here.
from .models import UserMessage def getform(request):
# all_messages = UserMessage.objects.filter(name="jack02", address="杭州")
#
# for message in all_messages:
# # 删除信息
# # message.delete()
# print message.name
# 提交数据
# user_message = UserMessage()
# user_message.name = "jack"
# user_message.message = "hello jack python"
# user_message.address = "杭州"
# user_message.email = "jack2019@163.com"
# user_message.object_id = "hello02"
# user_message.save() # if request.method == "POST":
# name = request.POST.get('name', '')
# message = request.POST.get('message',)
# address = request.POST.get('address', )
# email = request.POST.get('email', )
#
# user_message = UserMessage()
# user_message.name = name
# user_message.message = message
# user_message.address = address
# user_message.email = "jack2019@163.com"
# user_message.object_id = "hello03"
# user_message.save() message = None
all_messages = UserMessage.objects.filter(name="jacktest")
if all_messages:
message = all_messages[0] return render(request, "message_form.html",{
"my_message": message
})

templates/message_form.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<form action="{% url 'go_form' %}" method="post" class="smart-green">
<h1>留言信息
<span>请留下你的信息.</span>
</h1>
<label>
<span>姓名 :</span>
<input id="name" type="text" value="{% ifequal my_message.name|slice:'4' 'jackt' %}jackhastest{% else %}jack has not test{% endifequal %}" name="name" class="error" placeholder="请输入您的姓名"/>
<div class="error-msg"></div>
</label> <label>
<span>邮箱 :</span>
<input id="email" type="email" value="{{ my_message.email }}" name="email" placeholder="请输入邮箱地址"/>
<div class="error-msg"></div>
</label> <label>
<span>联系地址 :</span>
<input id="address" type="text" value="{{ my_message.address }}" name="address" placeholder="请输入联系地址"/>
<div class="error-msg"></div>
</label> <label>
<span>留言 :</span>
<textarea id="message" name="message" placeholder="请输入你的建议">{{ my_message.message }}</textarea>
<div class="error-msg"></div>
</label>
<div class="success-msg"></div>
<label>
<span>&nbsp;</span>
<input type="submit" class="button" value="提交"/>
</label>
{% csrf_token %}
</form> </body>
</html>
# 路由配置 djangostart\djangostart\urls.py
from django.conf.urls import url
from django.contrib import admin
from apps.message.views import getform urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^form/$', getform, name='go_form'),
url(r'^formtest', admin.site.urls)
]

Django入门3 简单留言板项目案例及mysql驱动的安装配置的更多相关文章

  1. vue+egg.js+mysql一个前后端分离留言板项目

    一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做 ...

  2. 原生JS实现简单留言板功能

    原生JS实现简单留言板功能,实现技术:css flex,原生JS. 因为主要是为了练手js,所以其中布局上的一些细节并未做处理. <!DOCTYPE html> <html lang ...

  3. asp.net留言板项目源代码下载

    HoverTree是一个asp.net开源项目,实现了留言板功能. 前台体验网址:http://hovertree.com/guestbook/ 后台请下载源代码安装. 默认用户名:keleyi 默认 ...

  4. PHP实现简单留言板

    最近学习了下PHP基础,这里做一个简单的留言板,算是对PHP和MySQL的使用做一个整体的练习吧,不遇到问题总感觉学不到东西. 截图如下: 总结: 1>数据库的简单操作,数据库的增删改查: 2. ...

  5. 欣欣的留言板项目====超级触动的dbUtil实现留言板

    留言板管理系统 我的完成效果图: 提交后: 我的留言板基本架构如图: 创建留言板数据库: 刚开始我的前台主页中写留言信息表单: <body> <h1>留言板</h1> ...

  6. 2019-10-12,html+php+mysql简单留言板,作业

    php+mysql简易留言板,实现注册,登录,注销,查看留言,删除留言 1,index.html登录页面 代码: <!doctype html> <html> <head ...

  7. Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

    在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...

  8. [原创]mysql 5.6安装配置,主从分离,读写分离简单教程

    文章中参考使用了多个博客的资料,汇总而成!其流程准确性被人亦本人实践! https://blog.csdn.net/qq_35206261/article/details/81321201 https ...

  9. SpringBoot入门最简单的一个项目示例

    使用IDEA创建一个SpringBoot项目 1.1 打开IDEA,文件-New-Project 1.2下一步,选择版本8(根据自己安装的JDK版本来选择) 1.3 下一步后点击Web,勾选Sprin ...

随机推荐

  1. prometheus学习系列七: Prometheus promQL查询语言

    Prometheus promQL查询语言 Prometheus提供了一种名为PromQL (Prometheus查询语言)的函数式查询语言,允许用户实时选择和聚合时间序列数据.表达式的结果既可以显示 ...

  2. Django之REST_FRAMEWORK 认证组件

    Django之DRF之认证组件 # from rest_framework.views import APIView # APIView 中的 dispatch 中 执行的 self.initial( ...

  3. Centos 实战-MySQL定时全量备份(1)

    /usr/bin/mysqldump -uroot -p123456 --lock-all-tables --flush-logs test > /home/backup.sql 如上一段代码所 ...

  4. Httpd服务入门知识-Httpd服务安装

    Httpd服务入门知识-Httpd服务安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Httpd概述 1>.Httpd介绍 20世纪90年代初,国家超级计算机应用中心 ...

  5. 2019年杭电多校第一场 1004题Vacation(HDU6581+数学)

    题目链接 传送门 题意 有\(n+1\)辆车要过红绿灯,告诉你车的长度.与红绿灯的起点(题目假设红绿灯始终为绿).车的最大速度,问你第\(0\)辆车(距离最远)车头到达红绿灯起点的时间是多少(每辆车最 ...

  6. mysql考题

    mysql 的考题 数据库考试题目 名字: 一.简答 1. mysql的管理员是?mysql的端口是? root,3306 2. mysql中常见的数据类型有哪些, int  char  varcha ...

  7. 20180520模拟赛T1——math

    [问题描述] 小美有 n 个点 m 条边. 让你给每个点一个正整数编号. 每条边有两个属性,相连的两个点的编号的 GCD 和 LCM. 题目保证整张图连通. 让你构造出一个编号. [输入格式] 从文件 ...

  8. GitHub & GitHub Desktop能帮我们做什么

    GitHub: 1.代码版本管理 GitHub Desktop:

  9. str = @"abc ""def"" ghi """"jkl"""" mn";

    namespace ConsoleQuotes { class Program { static void Main(string[] args) { string str = @"abc ...

  10. async/await 和 trycatch/throwable机制类似

    async/await 和 trycatch/throwable机制类似