![]()
views.py
1 # -*- coding: utf-8 -*-
2 from __future__ import unicode_literals
3
4 from django.shortcuts import render
5 from message.models import UserMessage
6 # Create your views here.
7 def getform(request):
8 if request.method == 'POST':
9 name = request.POST.get('name','')
10 email = request.POST.get('email','')
11 address = request.POST.get('address','')
12 message = request.POST.get('message','')
13 mess = UserMessage()
14 mess.name = name
15 mess.email = email
16 mess.adress = address
17 mess.message = message
18 mess.save()
19 return render(request, 'message_form.html')
settings.py
1 """
2 Django settings for DjangoTest project.
3
4 Generated by 'django-admin startproject' using Django 1.11.10.
5
6 For more information on this file, see
7 https://docs.djangoproject.com/en/1.11/topics/settings/
8
9 For the full list of settings and their values, see
10 https://docs.djangoproject.com/en/1.11/ref/settings/
11 """
12
13 import os
14
15 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
17
18 # STATIC_ROOT = os.path.join(BASE_DIR, 'static')
19
20 # Quick-start development settings - unsuitable for production
21 # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
22
23 # SECURITY WARNING: keep the secret key used in production secret!
24 SECRET_KEY = '42$e_@s@&l+#_$3_d02$f*n0@uqk#-51klz)4z1t_fi2ok!ol7'
25
26 # SECURITY WARNING: don't run with debug turned on in production!
27 DEBUG = True
28
29 ALLOWED_HOSTS = []
30
31
32 # Application definition
33
34 INSTALLED_APPS = [
35 'django.contrib.admin',
36 'django.contrib.auth',
37 'django.contrib.contenttypes',
38 'django.contrib.sessions',
39 'django.contrib.messages',
40 'django.contrib.staticfiles',
41 'message'
42 ]
43
44 MIDDLEWARE = [
45 'django.middleware.security.SecurityMiddleware',
46 'django.contrib.sessions.middleware.SessionMiddleware',
47 'django.middleware.common.CommonMiddleware',
48 'django.middleware.csrf.CsrfViewMiddleware',
49 'django.contrib.auth.middleware.AuthenticationMiddleware',
50 'django.contrib.messages.middleware.MessageMiddleware',
51 'django.middleware.clickjacking.XFrameOptionsMiddleware',
52 ]
53
54 ROOT_URLCONF = 'DjangoTest.urls'
55
56 TEMPLATES = [
57 {
58 'BACKEND': 'django.template.backends.django.DjangoTemplates',
59 'DIRS': [os.path.join(BASE_DIR, 'templates')],
60 'APP_DIRS': True,
61 'OPTIONS': {
62 'context_processors': [
63 'django.template.context_processors.debug',
64 'django.template.context_processors.request',
65 'django.contrib.auth.context_processors.auth',
66 'django.contrib.messages.context_processors.messages',
67 ],
68 },
69 },
70 ]
71
72 WSGI_APPLICATION = 'DjangoTest.wsgi.application'
73
74
75 # Database
76 # https://docs.djangoproject.com/en/1.11/ref/settings/#databases
77
78 DATABASES = {
79 'default': {
80 'ENGINE': 'django.db.backends.mysql',
81 'NAME': "DjangT",
82 'USER': "root",
83 'PASSWORD':"root",
84 'HOST':"127.0.0.1"
85 }
86 }
87
88
89 # Password validation
90 # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
91
92 AUTH_PASSWORD_VALIDATORS = [
93 {
94 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
95 },
96 {
97 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
98 },
99 {
100 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
101 },
102 {
103 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
104 },
105 ]
106
107
108 # Internationalization
109 # https://docs.djangoproject.com/en/1.11/topics/i18n/
110
111 LANGUAGE_CODE = 'en-us'
112
113 TIME_ZONE = 'UTC'
114
115 USE_I18N = True
116
117 USE_L10N = True
118
119 USE_TZ = True
120
121 # Static files (CSS, JavaScript, Images)
122 # https://docs.djangoproject.com/en/1.11/howto/static-files/
123
124 STATIC_URL = '/static/'
125 STATICFILES_DIRS = [
126 os.path.join(BASE_DIR,'static')
127 ]
models.py
1 # -*- coding: utf-8 -*-
2 from __future__ import unicode_literals
3
4 from django.db import models
5
6 # Create your models here.
7 class UserMessage(models.Model):
8 name = models.CharField(max_length=20,verbose_name=u"用户名")
9 email = models.CharField(max_length=100,verbose_name=u"邮箱",default="",primary_key=True)
10 adress = models.CharField(max_length=200,verbose_name=u"联系地址")
11 message = models.CharField(max_length=500,verbose_name=u"留言信息")
12
13 class Meta:
14 verbose_name = u"用户留言信息"
15 verbose_name_plural = verbose_name
urls.py
1 """DjangoTest URL Configuration
2
3 The `urlpatterns` list routes URLs to views. For more information please see:
4 https://docs.djangoproject.com/en/1.11/topics/http/urls/
5 Examples:
6 Function views
7 1. Add an import: from my_app import views
8 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
9 Class-based views
10 1. Add an import: from other_app.views import Home
11 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
12 Including another URLconf
13 1. Import the include() function: from django.conf.urls import url, include
14 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
15 """
16 from django.conf.urls import url
17 from django.contrib import admin
18 from message.views import getform
19
20 urlpatterns = [
21 url(r'^admin/', admin.site.urls),
22 url(r'^form/$', getform)
23 ]
message_form.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <link rel="stylesheet" href="/static/css/style.css">
7 </head>
8 <body>
9 <form action="/form/" method="post" class="smart-green">
10 <h1>留言信息
11 <span>请留下你的信息.</span>
12 </h1>
13 <label>
14 <span>姓名 :</span>
15 <input id="name" type="text" name="name" class="error" placeholder="请输入您的姓名"/>
16 <div class="error-msg"></div>
17 </label>
18
19 <label>
20 <span>邮箱 :</span>
21 <input id="email" type="email" value="" name="email" placeholder="请输入邮箱地址"/>
22 <div class="error-msg"></div>
23 </label>
24
25 <label>
26 <span>联系地址 :</span>
27 <input id="address" type="text" value="" name="address" placeholder="请输入联系地址"/>
28 <div class="error-msg"></div>
29 </label>
30
31 <label>
32 <span>留言 :</span>
33 <textarea id="message" name="message" placeholder="请输入你的建议"></textarea>
34 <div class="error-msg"></div>
35 </label>
36 <div class="success-msg"></div>
37 <label>
38 <span> </span>
39 <input type="submit" class="button" value="提交"/>
40 </label>
41 <input type='hidden' name='csrfmiddlewaretoken' value='SfHkbL4feo1G00sJQtbO7TtLN4c2BUwa' />
42 {% csrf_token %}
43 </form>
44
45 </body>
46 </html>
style.css
1 .smart-green {
2 margin-left: auto;
3 margin-right: auto;
4 max-width: 500px;
5 background: #F8F8F8;
6 padding: 30px 30px 20px 30px;
7 font: 12px Arial, Helvetica, sans-serif;
8 color: #666;
9 border-radius: 5px;
10 -webkit-border-radius: 5px;
11 -moz-border-radius: 5px;
12 }
13 .smart-green h1 {
14 font: 24px "Trebuchet MS", Arial, Helvetica, sans-serif;
15 padding: 20px 0px 20px 40px;
16 display: block;
17 margin: -30px -30px 10px -30px;
18 color: #FFF;
19 background: #9DC45F;
20 text-shadow: 1px 1px 1px #949494;
21 border-radius: 5px 5px 0px 0px;
22 -webkit-border-radius: 5px 5px 0px 0px;
23 -moz-border-radius: 5px 5px 0px 0px;
24 border-bottom: 1px solid #89AF4C;
25 }
26 .smart-green h1 > span {
27 display: block;
28 font-size: 11px;
29 color: #FFF;
30 }
31
32 .smart-green label {
33 margin: 0px 0px 5px;
34 display: block;
35 }
36 .smart-green label > span {
37 float: left;
38 margin-top: 10px;
39 color: #5E5E5E;
40 }
41
42 .smart-green input[type="text"], .smart-green input[type="email"], .smart-green textarea, .smart-green select {
43 color: #555;
44 height: 30px;
45 line-height: 15px;
46 width: 100%;
47 padding: 0px 0px 0px 10px;
48 margin-top: 2px;
49 border: 1px solid #E5E5E5;
50 background: #FBFBFB;
51 outline: 0;
52 -webkit-box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
53 box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
54 font: normal 14px/14px Arial, Helvetica, sans-serif;
55 }
56
57 .smart-green textarea {
58 height: 100px;
59 padding-top: 10px;
60 }
61
62
63 .smart-green .button {
64 background-color: #9DC45F;
65 border-radius: 5px;
66 -webkit-border-radius: 5px;
67 -moz-border-border-radius: 5px;
68 border: none;
69 padding: 10px 25px 10px 25px;
70 color: #FFF;
71 text-shadow: 1px 1px 1px #949494;
72 }
73
74 .smart-green .button:hover {
75 background-color: #80A24A;
76 }
77
78 .error-msg{
79 color: red;
80 margin-top: 10px;
81 }
82 .success-msg{
83 color: #80A24A;
84 margin-top: 10px;
85 margin-bottom: 10px;
86 }
数据库mysql,使用navicat premium工具。