1.windows下安裝html
2.建立第一個django程序python
3.連接數據庫並建立數據表mysql
Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),Django 也被稱爲 MTV 框架 。在 MTV 開發模式中:web
M 表明模型(Model),即數據存取層。該層處理與數據相關的全部事務:如何存取、如何確認有效性、包含哪些行爲以及數據之間的關係等。sql
T 表明模板(Template),即表現層。該層處理與表現相關的決定:如何在頁面或其餘類型文檔中進行顯示。shell
V 表明視圖(View),即業務邏輯層。該層包含存取模型及調取恰當模板的相關邏輯。你能夠把它看做模型與模板之間的橋樑。數據庫
models.py就是Django裏面的建表所需的數據模型的描述:
django
命令: python manage.py init 初始化數據庫 python manage.py sqlall [appname] 查看app的CREATE TABLE的語句,包括原始數據,建立索引等. python manage.py sqlreset [appname] 修改models,不保留之前數據,進行重置數據庫,更新表。 python manage.py validate 用來排錯 python manage.py syncdb 用來建表 python manage.py sql databasename 用來查看已建立數據庫表結構
------------------我是分割線------------------windows
問題1解答:
服務器
1.在官網上下載.tar.gz包,解壓以後放在和python同一級目錄下。
2.進入到django目錄下,執行python setup.py install,安裝完成後發現D:\program files\Python27\Lib\site-packages\django存在,django就安裝在該目錄下
3.配置環境變量,在系統環境變量path中添加如下3項
D:\program files\Python27; D:\program files\Python27\Lib\site-packages\django D:\program files\Python27\Scripts
檢查是否安裝成功
D:\program files\Django-1.6.1>python Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.get_version() '1.6.1' >>> exit()
4.建立Django工程
進入Scripts目錄,建立本身的工程mytest.進入myproject目錄後,執行:manage.py runserver,來啓動Django的自帶Web服務器.默認端口號是8000
目錄下有4個文件(很重要的4個文件):
__init__.py:代表該目錄爲一個python包
setting.py:項目設置文件
urls.py:URL映射管理
manage.py:對項目進行操做的命令
wsgi.py:Python Web Server Gateway Interface,是Python應用程序或框架和Web服務器之間的一種接口。
D:\program files\Python27>cd Scripts D:\program files\Python27\Scripts>django-admin.py startproject mytest D:\program files\Python27\Scripts>cd mytest D:\program files\Python27\Scripts\mytest>manage.py runserver Validating models... 0 errors found January 17, 2014 - 11:14:21 Django version 1.6.1, using settings 'mytest.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. [17/Jan/2014 11:15:07] "GET / HTTP/1.1" 200 1757 Validating models...
結束後輸入127.0.0.1:8000,顯示it works!說明成功
3.
數據庫建表過程:
1.建立應用程序
python manage.py startapp appname
2.用python代碼寫models.py,建立數據模型
from django.db import models class Publisher(models.Model): name = models.CharField(maxlength=30) address = models.CharField(maxlength=50) city = models.CharField(maxlength=60) state_province = models.CharField(maxlength=30) country = models.CharField(maxlength=50) website = models.URLField()3.模型的安裝
INSERT INTO book_publisher (name, address, city, state_province, country, website) VALUES ('Apress', '2855 Telegraph Ave.', 'Berkeley', 'CA', 'U.S.A.', 'http://www.apress.com/');更新數據:
UPDATE book_publisher SET name = 'NewName', address = '2855 Telegraph Ave.', city = 'Berkeley', state_province = 'CA', country = 'U.S.A.', website = 'http://www.apress.com' WHERE id = 52;選擇對象:
SELECT id, name, address, city, state_province, country, website FROM book_publisher;數據過濾 :
Publisher.objects.filter(name="NewName") 至關於SQL語句: SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE name = 'NewName'; 縮小範圍: Publisher.objects.filter(country="U.S.A.", state_province="CA") 至關於SQL語句: SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE country = 'U.S.A.' AND state_province = 'CA'; 模糊匹配: Publisher.objects.filter(name__contains="press")
在 name 和 contains 之間有雙下劃線。象Python本身同樣,Django也使用 雙下劃線來作一些小魔法,這個 __contains 部分會被Django轉換成 LIKE SQL語句:
SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE name LIKE '%press%';Publisher.objects.get(name="Apress Publishing")數據排序: Publisher.objects.order_by("name") 至關於SQL語句: SELECT id, name, address, city, state_province, country, website FROM book_publisher ORDER BY name; 能夠支持多個字段排序: Publisher.objects.order_by("state_provice", "address") 也能夠逆向排序: Publisher.objects.order_by("-name") 添加‘-’同時排序和過濾: Publisher.objects.filter(country="U.S.A.").order_by("-name") 至關於SQL語句: SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE country = 'U.S.A' ORDER BY name DESC; 限制返回數據: Publisher.objects.all()[Number] //Number能夠換成想要顯示的位置下標 至關於SQL語句: SELECT id, name, address, city, state_province, country, website FROM book_publisher ORDER BY name LIMIT 1; 刪除對象:p = Publisher.objects.get(name="NewName") p.delete()
首先,在開發環境中執行下面的步驟(也就是說,不是在發佈服務器上):
把這個字段添加到你的模型中.
運行 manage.py sqlall [yourapp] 會看到模型的新的 CREATE TABLE 語句。 注意新的字段的列定義。
啓動您的數據庫交互shell(也就是 psql 或 mysql , 或者您也能夠使用 manage.py dbshell )。 執行一個 ALTER TABLE 語句,添加您的新列。SQL語句:(ALTER TABLE books_publisher ADD COLUMN test integer)
(可選)用 manage.py shell 啓動Python交互式shell,並經過引入模型並選擇表 驗證新的字段已被正確添加。
ALTER TABLE books_book DROP COLUMN test;刪除表:DROP TABLE books_book
參考
http://www.cnblogs.com/zhoujie/archive/2013/05/11/django1.html