標籤

ASP.NET MVC (29) Visual C# (15) JQuery (10) Plugins (8) JQuery Plugins (6) JavaScript (6) MySQL (5) CSS (4) LinQ (4) Mac OS (4) CentOS (3) Design Pattern (3) Entity Framework (3) IIS (3) Python (3) Windows (3) php (3) Docker (2) LAMP (2) SQL Server (2) WCF (2) .NET (1) .NET Core (1) AWS (1) Browser (1) GIS (1) IE (1) Internet Security (1) Linux (1) Platform (1) React (1) SEO (1) Testing (1) VMware (1) Windows 7 (1) cookie (1) curl (1) laravel (1) phpBB (1) session (1) 中古屋 (1) 透天 (1) 閒言閒語 (1) 面試 (1) 鳥松 (1)

2011年5月27日 星期五

[Python] Django血淚史

我的環境為:Python2.5.4 + Django1.3 + SQLite3
----------
0.錯誤訊息Django Short names for ENGINE DeprecationWarning
Django1.3中
'ENGINE': 'sqlite3' 改為 'ENGINE': 'django.db.backends.sqlite3'


1.錯誤訊息 IndentationError:expected an indented block
通常是縮排問題

2.錯誤訊息 TypeError: __init__() got an unexpected keyword argument 'maxlength'
Django1.3改為max_length

4.pysqlite2._sqlite.OperationalError: unable to open database file
兩個原因:1.目錄沒有權限 2.資料庫路徑錯誤
1. 請把目錄改為有read/write權限
2. 如果是Local測試,可以使用相對目錄,否則用完整路徑。
------------------------------------------------------------
Django官方教學文件:https://docs.djangoproject.com/en/1.3/

*在shell中執行p.was_published_today()命令會出現錯誤"NameError: global name 'datetime' is not defined"
[解決方法]:
因為沒有import datetime,所以要在models.py中加入"from datetime import date"。
或者:
from django.db import models
import datetime

*沒有建立Django的SuperUser
[解決方法]:命令列輸入 "manage.py createsuperuser"

------[Django SOP]-----
1. 建立專案
django-admin.py startproject mysite

2. 編輯設定,資料庫類型與名稱(路徑)
settings.py

3. 同步資料庫,建立資料庫超級使用者
python manage.py syncdb

4. 建立應用程式
python manage.py startapp polls


6. Settings 中 INSTALLED_APPS區段中加入應用程式

7. 觀看與同步資料庫
python manage.py sql polls #look
python manage.py syncdb

8. 安裝管理者工具,在Settings 中 INSTALLED_APPS區段中加入django.contrib.admin,且url.py取消admin的註解 (要在同步一次資料庫)

9. 運行Server測試admin(此時只有基礎admin功能)

10. 在使用的apps資料夾中加入admin.py,內包含要編輯的資料表,之後重啟Server(新增code不用,新增檔案需要)
from polls.models import Poll 
from django.contrib import admin  
admin.site.register(Poll)










-----




Django 外來鍵引用方式: Poll 1-n Choice[ForeignKey(Poll)]
poll參照choice:Poll.objects.get(pk=id).choice_set.all()
choice參照poll:choice.poll.---




沒有留言:

張貼留言