新建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 AlertManager配置文件说明

    alertmanager配置文件说明 alertmanager是通过命令行标记和配置文件配置的,命令行标记配置不可变的系统参数,配置文件定义抑制规则.通知路由和通知接收器.可以通过官方提供的routi ...

  2. Windows系统下安装VirtualBox及安装Ubuntu16.04

    1.软件介绍 VirtualBox VirtualBox 是一款免费的开源虚拟机软件,所谓虚拟机软件,就是能够提供各种模拟的硬件环境,并且在其上安装各种操作系统,目前支持Window,Linux,Ma ...

  3. phpstorm webstorm编辑器正则替换 类名,方法名替换

    首先勾选Match Case 和 Regex 正则规则:无须添加//左右分解符,直接写正则表达式,注意应该转义的部分,需要原封不动替换的部分加上括号 替换规则:正常书写正则,要继承下来的字符使用$1. ...

  4. UGUI和NGUI的优化分享

    学习资料 来自UWA的分享,针对于Unity 4.x 及5.3 以下版本,Unity5.5及更高版本可能适用. 文章:UWA技术直播视频集锦 UGUI &NGUI http://blog.uw ...

  5. Java基础--static关键字

    不管是平时阅读源代码,还是笔试.面试中,static关键字还是经常被问道,这篇文章主要来重新复习一下该关键字. 一.static用途 static方便在没有创建对象的时候调用方法或者变量. stati ...

  6. 性能测试基础---SQL基础

    ·数据库相关: ·范式:NF.关系型数据库的设计规则. 范式总计有6种: 1NF\2NF\3NF\BCNF\4NF\5NF ·范式的实现是从低到高的,比如说首先要实现的就是1NF,才能继续实现2NF, ...

  7. 编程题:SaturdayNightStay

    "输入2019年的一个时间段,开始时间代表出发,结束时间代表在那一天返回,判断在该时间段内,如果旅行有多少个子时间段可以在周六晚上休息" * 周六晚上休息,即子时间段必须包含周六, ...

  8. sql的date和string转换

    涉及的函数 date_format(date, format) 函数,MySQL日期格式化函数date_format() unix_timestamp() 函数 str_to_date(str, fo ...

  9. 百度UEditor添加视频 增加支持“通用代码”功能,支持微信

    今天发现用UEditor默认的添加视频,在微信内置浏览器里无法正常显示.估计是微信屏蔽了UEditor使用的<embeded>标签.插入iframe形式的通用代码则能正常显示. 用百度UE ...

  10. ios Aspects面向切面沉思录—面向结构编程—面向修改记录编程—面向运行时结构编程—元编程?

    1.将主功能看成一个巨大的结构: 2.将切面注入的交叉业务看成是一组结构修改的注册:目标对象+方法是修改的键值: 3.Aspects引擎是修改的执行者.记录者.和维护者: 4.函数和方法是它操作和面对 ...