django實戰-留言板


 

對應github鏈接:https://github.com/pshyms/django/tree/master/liuyanban

 

第一天

 

1. 創建一個新項目后,新建一個應用程序
python manager.py startapp message
 
2. 在message同級目錄下創建3個目錄static, log, media,apps目錄,
static:存放靜態文件,包括js,css,圖片等
log:存放網站日志文件
media:存放用戶上傳的圖片等資源
apps: 用於應用過多時,都放於這個目錄下,然后將apps目錄右鍵mark成Source Root
 
3.  存放靜態文件
將message_form.html文件放在templates文件夾下
在static目錄下新建css目錄,並在css目錄下新建stylesheet格式的style文件,將message_form.html文件中的<style>標簽內容剪切到style.css文件中,首尾<style>去掉,shift+tab使css格式整齊
 
4. 配置django連接mysql
在setting.py大概80行找到DATABASES代碼段,默認是sqlites,我們修改為mysql如下,庫名要事先寫好
 
安裝pymysql模塊:pip install pymysql
python3 pymysql就是MySQLdb,基本使用方法:import pymysql as MySQLdb
 
django 中使用方法,在項目djangostart目錄里的__init__.py中加入
import pymysql
pymysql.install_as_MySQLdb()
 
 
執行python manage.py migrate 首次執行,生成項目需要的一些基本數據庫
 
 
 
5. 配置message_form.html頁面展示出來
 
5.1 message/views.py中添加如下代碼:
 
5.2 djangostart/urls.py中添加代碼
 
5.3  DjangoGetStarted/settings.py 57行左右修templates代碼塊中的DIRS為如下,來指定模板位置
 
5.4 頁面出來后,沒css樣式,原因是css文件沒找到,這是因為在settings.py中我們只是指定了靜態文件目錄名
但是沒指定靜態文件查找的跟路徑,所以還需添加如下代碼
 
 
 
 
 

 第二天  ORM

 

一. models.py中定義數據庫中數據名和各字段

 
1. 主鍵可以不定義,默認會生成一個id主鍵,當然也可以自定義主鍵,例如這里
 
注意:
1) 必須寫default值
2) verbose_name相當於起一個別名,方便閱讀
3)如果是字符字段,必須寫最大長度
4) 定義主鍵要寫關鍵字primary_key
5) null = True, blank= True表示字段可以為空。 default和blank的更改是python層面的約束 不需要遷移,因為他們不影響數據庫;但是如果把default=''改為Null=True,表允許為空,雖然效果一樣,但需要遷移數據庫
 
 
2. 你可以在任意一個模型類中使用meta類,用來設置一些與特定模型相關的選項
    其中ordering值的類型必須是一個元組或者列表
    db_table用來自定義表名
 
 
3. 在settings.py中第40行要把應用程序的名字加到INSTALLED_APPS代碼段中
 
 
 

二. django model的增刪改

 
1. 先用navicat添加一條測試數據,例如
 
 
2. 在message/views.py中修改為如下
 
說明:
ORM中默認的數據管理器是objects, 常用的方法有all(),filter(),delete()
1. all()將所有數據返回成一個queryset類型,可遍歷操作,如上例
2. filter()取出指定條件值,如filter_message = UserMessage.objects.filter(name='jack', address='西安'),同樣可進行遍歷操作
3.  刪除操作很簡單,比如如果只有一條數據,all_message.delete()即可,如果是多條,上圖一樣來個for循環。需要注意的是只有每次表單提交的時候,刪除操作才能生效,因為getform函數引用了request參數。
 
 
 
3. 將數據存入數據庫
 
3.1 本地數據存儲
可在message/views.py的getform()函數中添加如下代碼,使用對象的save()方法即可把數據保存到數據庫中
 
 
 
3.2 把html的提交數據保存到數據庫
 
1)在message_form.html中指定提交表單發送的地址,action就是指向我們在urls.py中配置的/form/,然后就可以在getform中取到傳遞的值
 
2)在message_form.html的表單標簽</form>上面一行加入{% csrf_token %},否則會報403錯誤。原因是頁面沒有進行crsf驗證,這是django的安全機制,不允許任意表單都可以往后台提交數據
 
3)request.POST可以把數據取出
 
 
 
 
 
 

 第三天

 

一. URL模板配置

 
本節將介紹url的配置,以及如何將數據庫數據填充回前台html頁面
 
1. 改寫message/views.py中的getform函數如下
 
說明:
1)取出數據,將過濾到的數據賦值給變量message
2)修改return render,增加{"my_message": message},這樣會有一個my_message對象隨着返回頁面,其中名字my_message可以任意寫,message為上面的變量
 
 
2. 在前端頁面中放入值
在message_form.html中,為input標簽添加value,例如修改id = "name"的input標簽如下
同樣的方法修改郵箱和聯系地址的input標簽,並且修改textarea標簽為
 
之后運行項目,發現原先address為西安的數據就會在頁面上顯示
 
 
 
3. 常見的幾種模板標簽介紹
 
3.1 if - else,改寫姓名的<input>標簽如下
如果有name等於jack1,頁面中姓名輸入框就顯示 “對應昵稱:天涯”,否則顯示 "沒找到昵稱"
 
 
3.2 ifequal 和 ifnotequal,改寫地址的<input>標簽如下
 
 
3.3 slice,改寫email<input>標簽如下
如果email的前三位等於123,那么在網頁上顯示too simple,否則顯示good email
 
 
 
 

二. URI別名設置技巧

 
1. 在djangostart/urls.py中為uri添加別名
 
2. 修改message_form.html中action的地址
 
這樣我們如果修改urls.py中的匹配格式,不需要在修改前端代碼中的值
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM