Tsubasa ,

關於部落格
  自由之翼,
  • 5292

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

Django日記/開發過程紀錄。 01-28-2016

  筆記開發過程,日誌和思索紀錄。

--

  開發環境:
  ※ Python 3.4.1
  ※ Django 1.8.8

  SCSS 那些還沒輪到所以目前都是空的這樣。

  編輯器是 Sublime Text 3,主要在用的套件只有 Emmet 而已。

  (小聲說:截圖工具是 Line Keep,太好用了……)

--

  2016-01-28
  1、粗略的亂數
  2、拿得到牌組、張數、名稱

--

  目前都還在摸索階段,所以檔案滿亂的……

  Project:akari24
  懶得取名,之後 Deploy 到 Heroku 的時候會用這個名字(吧)。

  App:generator
  真心希望沒有拼錯字(欸)
  這個地方原則上會是完整的抽牌程式,粗估有六組牌,五組圖文、一組純文字。

  請忽略「img/」……忽然發現沒有放在對的位置嗚嗚。

  static:CSS、JavaScript 和圖片放置處。(如果有的話……Orz)

  templates:樣版。(簡單明瞭)這邊還需要依照不同的 App 去做分類,但是還沒想好這個 Project 到底要做到什麼程度,所以先隨便放,之後慢慢邊做邊整理。

  VENV:不重要的 Virtual ENV。

image

--

image

  搞毛啊圖片不能併排!(暴怒)

  上面是 Project 底下的 urls.py,下面是 settings.py。如同前述,因為還沒決定要做到什麼程度,所以目前先把首頁導向 App 底下的 urls.py。認真說,除非要另外做 Project Level 的 View,不然其實這樣導向沒有什麼意義……

image

  底下的 settings.py 特地畫了條線,自從 Django Girls 新手村以後,我習慣放上這一行,其實 Django Girls 的寫法是:

  [os.path.join(BASE_DIR, 'templates').replace('\', '/')],

  但自從我某次腦殘、複製貼上沒貼到後面的「replace」之後,赫然發現這樣其實也可以通,我就都這樣寫了。其餘的設定除了時區(參官方文件)之外,都沒有改變。

--

image

  App 底下的 urls.py。從 App 中 import 所有 views,搭配前面 Project Level 的 urls.py 來看的話,要顯示我的 home 的網誌就是「http://mydomain/」這樣。

  上下兩行註解是我的習慣,先列 url 才知道要做什麼……(壞習慣#)

--

image

  我想了很久的 models.py,主要卡在關聯式的部份(ForeignKey),到底是要放在 Deck 底下還是放在 Card 底下,試了幾次才確定。再次證實我資料庫觀念真的很差……

  Deck 是牌組。其實有考慮一次抓所有牌組的牌出來亂數抽,但是想了想,還是決定要統一牌組。Deck.total 之後會改成自動運算總張數,測試階段就……隨便吧。

  Card 是單張牌卡,做了關聯式,圖片的部份本來要用 URLField,但是自己找空間很麻煩,FileField(應該是叫這個名字)又寫得不清不楚,所以先用 CharField 帶過,日後再調整。

  Draw 是抽牌紀錄,這個命名實在命得很爛,要再想想怎麼改。Draw.cardset 基本上就是紀錄抽到啥牌,同樣還沒想好怎麼處理,所以就先放著。

--

image

  這是自建的檔案 draws.py,不包含在 django-admin.py 自動產生的範圍裡面。

  這檔案的目的就是要抽牌!

  Draws() 基本上相當直觀,目前的進度是亂數產生一組牌(namegen),用這個亂數結果抓了自己Key 的總數(deckgen.total,上面打錯字……)、實際總張數(count_card),然後所有亂七八糟的東西全部存進一個 list 裡面、回傳。

  ※ q 的作用只是一個檢查,也就是傳說中的 debug 變數,不重要。

  特別筆記一下:deckgen.card_set.all()
  deckgen 是前面抓出來的特定一組牌(Query Object),card_set 是「Card」這個 model,「_set」是抓跟 deckgen 關聯的項目,「all」則是指定抓所有,如果用 get、filter 就可以針對設定條件去篩選。

--

image

  App 底下的 views.py,從自建的 draws.py 中 import 自建函數 Draws(),然後隨便給個名字,在 template 中顯示。template 是 index.html。同樣是測試階段,會是「post_list」是因為我是拿 Django Girls 新手村的檔案來改的……

  前面的 draws.py 中,回傳的資料是 list,存進 deck_name 裡面,然後再存進「post_list」裡面準備傳到 Template 中。會分兩次存是因為後續還需要處理,避免一直改來改去的麻煩。

--

image

  最後是超醜的 template!XD

  基本上只要看 body 裡面的東西就好,{%%} 和 {{}} 是 Django 的 Template 語法,神一樣的好用啊不是我在說。

  上面的 views.py 中,指定了一個要放到 Template 上的 list「post_list」,所以這邊用 for 迴圈讀出來。

  實際的樣子太醜了不想貼,總之這樣可以看見的結果就是:

  所有單張牌卡、牌組名稱、手 Key 的張數(model 裡面的 total)和自動計算的總張數(draws.py 裡面的 count_card)。

--

  今天的進度就這樣啦,還缺表單、資料庫建置、圖片處理方法、美化。

  目前其實主要還是專注在協作我愛人的專案,偶爾頭昏腦脹就會來想想自己的東西要怎麼寫這樣。

--

  我真心沒有勇氣把這篇發到 Django Girls 的社團啦!

  寫完了!

相簿設定
標籤設定
相簿狀態