Django簡介:
Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。采用了MVC的框架模式,即模型M,視圖V和控制器C。不過在Django實(shí)際使用中,Django更關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。Django的主要目的是簡便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動的網(wǎng)站,它強(qiáng)調(diào)代碼復(fù)用,多個組件可以很方便的以“插件”形式服務(wù)于整個框架,Django有許多功能強(qiáng)大的第三方插件。
django是對象關(guān)系映射的 (ORM,object-relational mapping):以Python類形式定義你的數(shù)據(jù)模型,ORM將模型與關(guān)系數(shù)據(jù)庫連接起來,你可以通過簡單的API操作數(shù)據(jù)庫,同時你也可以在Django中使用原始的SQL語句。Django可以運(yùn)行在Apache上,也可以運(yùn)行在支持WSGI,F(xiàn)astCGI的服務(wù)器上。支持多種數(shù)據(jù)庫,已經(jīng)支持Postgresql,MySql, Sqlite3,Oracle。
django安裝
pip install Django
驗(yàn)證django的安裝
import django django.get_version()
創(chuàng)建一個django工程
django-admin.py startproject mysite
此時會自動生成一些目錄和文件,最外層的manage.py,像是一個運(yùn)行的入口,通過命令行的調(diào)用可以完成一些常用的功能,比如:
運(yùn)行django的自帶的web服務(wù)器:
python manage.py runserver http://127.0.0.1:8080
常用的同步或創(chuàng)建數(shù)據(jù)庫表:
python manage.py syncdb
創(chuàng)建django project里面的子項(xiàng)目
python manage.py startapp polls
創(chuàng)建超級管理員:
python manage.py createsuperuser
還有setttings.py文件,是django的配置文件。
urls.py文件,是django用于匹配url的文件,哪個網(wǎng)址執(zhí)行哪些后臺代碼(view)是在這里定義的。
Django MTV模式之----modle模型
Django采用了orm模式(對象關(guān)系映射),django的模型根據(jù)數(shù)據(jù)庫表的內(nèi)容定義了一個python類,這個類里面的成員和每一個數(shù)據(jù)庫表里的字段一一對應(yīng);
類里面的成員類型也和數(shù)據(jù)庫表里的字段類型也是對應(yīng)的,名字其實(shí)也可以起的一樣,看起來比較直觀。這樣每個類實(shí)例就代表了數(shù)據(jù)庫里面的一條數(shù)據(jù)。
模型例子(在models.py里定義):
from django.db import models class Poll(models.Model): question = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): poll = models.ForeignKey(Poll)d choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)
django設(shè)置數(shù)據(jù)庫:
settings.py文件里面的database可以定義你要使用的數(shù)據(jù)庫類型,比如:
定義數(shù)據(jù)庫為sqlite
'ENGINE': 'django.db.backends.sqlite3'
定義數(shù)據(jù)庫為mysql
'ENGINE': 'django.db.backends.mysql'
執(zhí)行django-admin.py startproject mysite, 然后再python manage.py runserver http://127.0.0.1:8080就算搭建了最簡單的一個django web服務(wù)器,可通過 http://127.0.0.1:8080訪問測試。另外在install_apps里面激活應(yīng)用,執(zhí)行pyhton manage.py syncdb,此時會根據(jù)定義的模型創(chuàng)建相應(yīng)的數(shù)據(jù)庫。
數(shù)據(jù)庫操作例子:(假設(shè)File為定義的模型類)
獲取所有數(shù)據(jù):
all_filelist = File.objects.all()
獲取所有數(shù)據(jù)并按某個字段排序:
all_filelist = File.objects.all().order_by('-id')
執(zhí)行sql語句:
cursor = connection。cursor() cursor.extcute("select * from info_path") chaannels = cursor.fetchall()
過濾數(shù)據(jù):
list=File.objects.all().filter(xxx=xxx)
根據(jù)主鍵查詢
list=File.objects.all().get(id=1)
時間過濾:
results = File.objects.all().filter(time__range=(dayfrom, dayto))
創(chuàng)建新數(shù)據(jù):
file = File(time=time,path=path,result=result) file.save()
獲取數(shù)據(jù):
file.time file.path
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
