1. 程式人生 > >Django——學習週報1

Django——學習週報1

Python打造線上教學平臺學習

		             ——————  學習週報 2018.11.11


本週計劃:

  • 完成課程第3,4章的學習,
  • 複習django知識

完成情況:

  • 第3章 留言板功能已經實現

  • 第4章 需求分析與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>&nbsp;</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 = "[email protected]"

	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 別名,---------------很方便
    +不要忘記
    符號在這裡插入圖片描述

6.當安裝python過程中出現許多錯誤時,到這裡找包:python包網址

7. 4-1 4-2 是補充小節,後面需要時再回來看。

8. 對整個線上教育平臺的功能有了全面的認識。



Django實戰-資料庫設計

  • 目錄:

    app設計

        users-使用者管理
        course-課程管理
        organization-機構和教師管理
        operation-使用者操作管理
    

    models 設計

         user models.py 
         organization models.py 
         course models.py 
         operation models.py 
    

    資料表生成與修改



下週任務

  • 複習Django知識
  • 學習第五章
    • admin
    • xadmain
    • users app 的model註冊
    • xadmain 全域性配置