django學習筆記:雜

python文件頭部一般加如下語句:

# -*- coding: UTF-8 -*- 
或者 
#coding=utf-8    

注意:#coding=utf-8 的 = 號兩邊不要空格。

 

以下建議不止是對Django的建議,也可以適應於所有web開發

 1.  無論何時,當你需要創建一個改變服務器端數據的表單時,請使用 method="post"。

2. 成功處理POST數據後,始終返回HttpResponseRedirect。這可以防止用戶點擊後退按鈕,從而數據被髮布兩次 。

 

不管怎麼說,如果你想要增加一個新功能,那麼同時一定要爲它編寫測試。

有時測試代碼變得比應用的實際代碼還要多,而且測試代碼大多都是重複且不優雅的,特別是在和業務代碼比起來的時候,這種感覺更加明顯。但是這沒關係! 就讓測試代碼繼續肆意增長吧。大部分情況下,你寫完一個測試之後就可以忘掉它了。在你繼續開發的過程中,它會一直默默無聞地爲你做貢獻的。

建議:

  • 對於每個模型和視圖都建立單獨的 TestClass
  • 每個測試方法只測試一個功能
  • 給每個測試方法起個能描述其功能的名字

 

Django定義模型(數據表)

如果要使用模型,必須要創建一個app:

django-admin startapp TestModel

在models.py 文件中定義模型(數據表):

 

# models.py
from django.db import models
 
class Test(models.Model):
    name = models.CharField(max_length=20)  # varchar類型

數據類型則由CharField(相當於varchar)、DateField(相當於datetime)

models.CharField(max_length=200)
models.IntegerField(default=0)
models.EmailField()
models.ForeignKey(Contact)

在settings.py(該模型app是定義在project下的,settings.py是project的)中找到INSTALLED_APPS這一項,加上 'TestModel', 表示將該模塊加入到項目中。

在模型定義好之後,執行以下命令:

python manage.py migrate   # 根據定義的model創建表結構

python manage.py makemigrations TestModel  # 讓 Django 知道我們在我們的模型有一些變更
python manage.py migrate TestModel   # 創建表結構

相應的數據庫內容如下(其中第一個是我們自己定義的,而其他是Django項目自帶的)

表名組成結構爲:應用名_類名(如:TestModel_test)

 

重啓Nginx服務

 方法一:進入nginx可執行目錄sbin下,輸入命令./nginx -s reload 即可

 

第一個 WSGI 應用

從一個簡單的 “Hello World” 開始

Python 3.x 版本:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

現在運行 uWSGI 來啓動一個會把請求傳遞給你的 WSGI 應用的 HTTP 服務器/路由器。

uwsgi --http :9090 --wsgi-file foobar.py

注:當你有前端 web 服務器時不要使用 –http 選項,使用 –http-socket。

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2

這將會產生 4 個進程(每個進程 2 個線程),一個主進程(當你的進程死掉時會重新 spawn 一個新的)以及 HTTP 路由器

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章