—————— 学习周报 2018.11.11
完成情况:
-
实现留言板功能
-
实现需求分析与model 设计
1. 牢记Django 2.0的注意事项
2. django-app设计
3. user models.py 设计
4. organization models.py 设计
5. course models.py 设计
6. operation models.py 设计
7. 数据表生成
8. apps目录的建立 -
Navicat for MySQL的使用
笔记:
1.留言板:
代码:
- CSS
.smart-green {
margin-left: auto;
margin-right: auto;
max-width: 500px;
background: #F8F8F8;
padding: 30px 30px 20px 30px;
font: 12px Arial, Helvetica, sans-serif;
color: #666;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
}
.smart-green h1 {
font: 24px "Trebuchet MS", Arial, Helvetica, sans-serif;
padding: 20px 0px 20px 40px;
display: block;
margin: -30px -30px 10px -30px;
color: #FFF;
background: #9DC45F;
text-shadow: 1px 1px 1px #949494;
border-radius: 5px 5px 0px 0px;
-webkit-border-radius: 5px 5px 0px 0px;
-moz-border-radius: 5px 5px 0px 0px;
border-bottom: 1px solid #89AF4C;
}
.smart-green h1 > span {
display: block;
font-size: 11px;
color: #FFF;
}
.smart-green label {
display: block;
margin: 0px 0px 5px;
}
.smart-green label > span {
float: left;
margin-top: 10px;
color: #5E5E5E;
}
.smart-green input[type="text"], .smart-green input[type="email"], .smart-green textarea, .smart-green select {
color: #555;
height: 30px;
line-height: 15px;
width: 100%;
padding: 0px 0px 0px 10px;
margin-top: 2px;
border: 1px solid #E5E5E5;
background: #FBFBFB;
outline: 0;
-webkit-box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
font: normal 14px/14px Arial, Helvetica, sans-serif;
}
.smart-green textarea {
height: 100px;
padding-top: 10px;
}
.smart-green .button {
background-color: #9DC45F;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-border-radius: 5px;
border: none;
padding: 10px 25px 10px 25px;
color: #FFF;
text-shadow: 1px 1px 1px #949494;
}
.smart-green .button:hover {
background-color: #80A24A;
}
.error-msg{
color: red;
margin-top: 10px;
}
.success-msg{
color: #80A24A;
margin-top: 10px;
margin-bottom: 10px;
}
- 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="/form/" method="post" class="smart-green">
<h1>留下信息
<span>请留下你的信息.</span>
</h1>
<label>
<span>姓名:</span>
<input id="name" type="text" name="name" class="error" placeholder="请输入您的姓名"/>
<div class="error-msg"></div>
</label>
<label>
<span>邮箱:</span>
<input id="email" type="email" value="" name="email" placeholder="请输入邮箱地址ַ"/>
<div class="error-msg"></div>
</label>
<label>
<span>联系地址:</span>
<input id="address" type="text" value="" name="address" placeholder="请输入联系地址ַ"/>
<div class="error-msg"></div>
</label>
<label>
<span>留言 :</span>
<textarea id="message" name="message" placeholder="请输入你的建议"></textarea>
<div class="error-msg"></div>
</label>
<div class="success-msg"></div>
<label>
<span> </span>
<input type="submit" class="button" value="提交"/>
</label>
</form>
</body>
</html>
2.项目配置流程
3.django model的增删改查
(注:代码中出现中文时,应该在头部加上: # * coding:utf-8 *)
查:
def getform(request):
all_message = UserMessage.objects.all()
for message in all_message:
print message.name
return render(request,'message_form.html')
有条件的查:
def getform(request):
all_message = UserMessage.objects.filter(name='ztt',address='重庆')
for message in all_message:
print message.name
return render(request,'message_form.html')
增:
def getform(request):
# all_message = UserMessage.objects.filter(name='ztt',address='重庆')
# for message in all_message:
# print message.name
user_message = UserMessage()
user_message.id = "2"
user_message.name = "jack"
user_message.message = "hello"
user_message.address = "北京"
user_message.email = "2@1.com"
user_message.save()
return render(request,'message_form.html')
== 如果要提交数据没有403错误, 必须在HTML中加上(这是Django的一种安全机制):
<form>
{% csrf_token %}
<form>
将留言板页面的留言信息数据保存到数据库中,随时更新数据库:
def getform(request):
if request.method =="POST":
name = request.POST.get('name','')
message = request.POST.get('name','')
address = request.POST.get('address','')
email = request.POST.get('email','')
user_message = UserMessage()
user_message.id = "3"
user_message.name = name
user_message.message = message
user_message.address = address
user_message.email = email
user_message.save()
return render(request,'message_form.html')
删:
def getform(request):
all_message = UserMessage.objects.filter(name='ztt',address='重庆')
# all_message.delete() 全部删
for message in all_message:
message.delete() # 删除单条数据
return render(request,'message_form.html')
4.Django官方文档: 搜索:“Django documentation”
5. url配置
- 当要使用多个页面时,设置 url 别名,---------------很方便
- 不要忘记
符号