新建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. Vue开发之基础路由

    1.router-link和router-view组件 src/App.vie文件内容: <template> <div id="app"> <div ...

  2. git reset 的HEAD和--hard

    转载请注明来源https://www.cnblogs.com/sogeisetsu/p/11407764.html git reset 的HEAD和--hard git reset HEAD < ...

  3. web api .net C# mvc API返回XML文档的解析并取值

    [HttpGet] public System.Net.Http.HttpResponseMessage GetNotify() { var xmlstring = @" <xml&g ...

  4. C#中的事件的订阅与发布

    认识发布者/订阅者模式 发布者定义一系列事件,并提供一个注册方法: 订阅者向发布者注册自己的事件处理逻辑,供一个可被回调的方法,也就是事件处理程序:当发布者的事件被触发的时候,订阅者将通过回调函数得到 ...

  5. python小案例-计算输入两个数的最大公约数与最小公倍数

    # 计算最大公约数 def gcd(x,y): """ 计算最大公约数 :param x:一个正整数 :param y:一个正整数 :return:x,y的最大公约数 & ...

  6. spark的RDDAPI总结

    下面是RDD的基础操作API介绍: 操作类型 函数名 作用 转化操作 map() 参数是函数,函数应用于RDD每一个元素,返回值是新的RDD flatMap() 参数是函数,函数应用于RDD每一个元素 ...

  7. file size php

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. SSM项目day4 Oracle批量插入数据bug <foreach>标签中collection属性使用的是属性名

  9. log4j2 配置文件解读

    1.日志相关介绍 日志接口(slf4j):slf4j是对所有日志框架制定的一种规范.标准.接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用,比如log4j.l ...

  10. 快站中如果点击报错,则用jquery的点击方式来书写!!!

    如题 上传快站常用的css /* 上传快站额外的css */ .sys-title-1 { display: none !important; } .nav-header { height: 0 !i ...