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 路由器