老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

Django小例子–模型數據的模板呈現-創新互聯

學習Django的這幾天,學習過程還是很愉快的,django采用的MVC架構,學習曲線十分平緩,在深入學習之前,先簡單的整理記錄下django從數據庫中獲取數據并在模板中使用的方法。溫故而知新 ^_^

成都創新互聯是一家集網站建設,鄂溫克企業網站建設,鄂溫克品牌網站建設,網站定制,鄂溫克網站建設報價,網絡營銷,網絡優化,鄂溫克網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。

首先假設一個簡單的場景,數據庫中存放著作者和書目的信息。這是一種多對多(ManyToMany)的結構,因為一個作者可以寫多本書,一本書也可能由多個作者共同完成。我們如何使用Django來創建項目,配置數據庫,創建視圖,模板,配置URL路由,最后在瀏覽器訪問我們動態創建的頁面、

如下的部分算作是記錄,也會簡單的說明下Django的工作原理。入果是新手,估計看看也會有所收獲,能對Django有個大概的了解。想系統的學習Django的小伙伴推薦你看《Django Book(中文版)》,這個文檔有些年頭,不過最近學習來看,原理和基本操作都沒變,就是目錄結構隨著版本的升級發生變化,沒啥大的影響,如英語可以,看Django官方文檔當然是最好的。

假設你已經配置好了Django的環境。那么使用如下命令,創建我們的項目:

django-admin.py startproject project
cd project
python mamages.py startapp blog

這樣我們就創建完成一個基本的項目了。來tree一下看看:

[root@Init-smile project]# tree

顯示結果:

.
├── blog
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
 
3 directories, 11 files

需要修改的文件是settings.py,在里面注冊我們新建的APP,并且配置mysql數據庫。找到

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'
)

添加APP,按如下的事例配置數據庫,NAME,USER,PASSWORD換成你的。

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),   'NAME': 'AuthBooks',
'USER': 'root',
'PASSWORD': '123456',
    }
}

接下來,配置URL路由,修改urls.py,這個的作用就是匹配網址,提交給views.py進行處理

from django.conf.urls import patterns, include, url
from django.contrib import admin
 
urlpatterns= patterns('',
# Examples:  # url(r'^$', 'project.views.home', name='home'),  # url(r'^blog/', include('blog.urls')), 
    url(r'^admin/', include(admin.site.urls)),
    url(r'^author/$', 'blog.views.show_author'),
    url(r'^book/$', 'blog.views.show_book'),
)

這樣,我們的網址如127.0.0.1/author和127.0.0.1/book就會對應進入不同的處理函數來對他們進行處理,接下來我們就編寫views.py,實現相應功能。等等,在這之前,我們必須先了解下數據庫,了解下如何建立數據,初始化表,獲取數據。這樣我們才能繼續進行。在models.py模塊中來定義我們的表如下,有Author,Book表,Author保存著作者名,Book保存著書名和作者名

from django.db import models
 
# Create your models here. 
class Author(models.Model):
        name= models.CharField(max_length=30)
 
def __unicode__(self):
return self.name
 
class Book(models.Model):
        name= models.CharField(max_length=30)
        authors= models.ManyToManyField(Author)
 
def __unicode__(self):
return self.name

接下來,我們要初始化數據庫。使用如下命令。

python manage.py syncdb
Operations to perform:
Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying sessions.0001_initial… OK

You have installed Django’s auth system, and don’t have any superusers defined.
Would you like to create one now? (yes/no):

這里問我們是不是建立一個管理賬戶。我們選擇Yes,然后根據提示創建完成。去項目根目錄看看是不是有一個名為db.sqlite3的數據庫了~

接下來,我們通過項目提供的shell練習一下添加作者,書籍等數據。然后再到views.py模塊中進行處理。

python manage.py shell

這樣,我們就進入了一個django為我們配置好的shell環境,我們可以方便的導入相關的模塊而不必擔心not found問題。

接下來運行如下一系列命令。來為數據庫添加記錄

from blog.models import Author, Book
Author.objects.create(name='sin')
Author.objects.create(name='sun')
Author.objects.create(name='lin')
b1 = Book()
b1.name = 'book1'
b1.save()
b2 = Book()
b2.name = 'book2'
b2.save()
b3 = Book()
b3.name = 'book3'
b3.save()
sin = Author.objects.get(name__exact='sin')
sun = Author.objects.get(name__exact='sun')
lin = Author.objects.get(name__exact='lin')
b1.authors.add(sin)
b1.authors.add(sun)
b2.authors.add(sun)
b3.authors.add(sun)
b3.authors.add(lin)

根據上面的命令就可以建立起如下圖所示的Authors-Books對應關系

補充一些常用命令
(根據書本查作者)
查詢每本書對應的作者:

>>> b1.authors.all()
[, ]
>>> b2.authors.all()
[]
>>> b3.authors.all()
[, ]

查詢書中的指定作者看是否存在

b1.authors.filter(name__exact='sin')

刪除書的作者:

b1.authors.remove(sun)

(根據作者查詢他出的書)

>>> sin.book_set.all()
[]
>>> sun.book_set.all()
[, , ]
>>> lin.book_set.all()
[]

事實上,book_set相當于前面使用的objects

>>> sin.book_set.add(b3)
>>> sin.book_set.remove(b3)
>>> sin.book_set.all()
[]

為作者添加新的書目:

sin.book_set.create(name='book4')

如上的命令都是封裝好的數據庫操作指令,所做的所有改動都會保存在數據庫中。下面,就可以進行view.py的配置,和模板的編寫,來在html上直觀的顯示出作者和書目的對應關系
view.py內容如下,它就是用來處理對應的URL都做什么,在這里是返回處理過的模板

from django.shortcuts import render_to_response
from blog.models import Author, Book
 
# Create your views here. 
def show_author(request):
        authors= Author.objects.all()
return render_to_response('show_author.html', {'authors':authors})
 
def show_book(request):
        books= Book.objects.all()
return render_to_response('show_book.html', {'books':books})

在blog的目錄下新建templates文件夾,這是系統默認的模板搜索路徑,所以直接在里面新建show_author.html 內容如下:

{% for author in authors %}

{{ author.name }}

{% for book in author.book_set.all %}
  • {{ book.name }}
  • {% endfor %}
    {% endfor %}

    再建立show_book.html,內容如下:

    {% for book in books %}
    

    {{ book.name }}

    {% for author in book.authors.all %}
  • {{ author.name }}
  • {% endfor %}
    {% endfor %}

    OK,如上就是構建django項目創建APP,配置數據庫,添加數據,配置URL路由,編寫視圖,模板的所有內容了。
    下面來運行我們的項目,并在瀏覽器端訪問。

    在project目錄下運行:

    python manage.py runserver

    這樣,你在本地通過127.0.0.1:8000/author和127.0.0.1:8000/book就可以看到效果了

    如果你使用的虛擬機(橋接上網),那么可以使用如下命令

    python manage.py runserver 0.0.0.0:80

    如上就可以通過你的虛擬機IP地址進行訪問了。(你可能需要使用iptables -F來臨時關閉iptables)

    好的,看看是不是和我的運行的結果一樣呢~

    整理完畢,繼續下一步學習。


    當前題目:Django小例子–模型數據的模板呈現-創新互聯
    標題網址:http://www.xueling.net.cn/article/cepejd.html

    其他資訊

    在線咨詢
    服務熱線
    服務熱線:028-86922220
    TOP
    主站蜘蛛池模板: 久久一区二区精品视频 | 7777精品伊久久久大香线蕉语言 | 日韩欧美在线视频一区 | 久久精品黄色 | 精品国产一区在线 | 黄在线看 | 精品96久久久久久中文字幕无 | 91久久极品 | 玖玖爱中文字幕 | 四虎永久成年免费影院 | 精品二区在线 | 九九久久久久99精品 | 久草久草久草久草 | 午夜精品久久久久久久99热 | 国产精品人成在线播放 | 亚洲成人在线视频观看 | www.xxxx国产| 久久精品中文闷骚内射 | 精品综合久久久久久888蜜芽 | 国产精品久久久久久久妇女 | 五月婷久久综合狠狠爱97 | 免费三区| 久久精品国产99精品最新 | 久久久久国产精品熟女影院浪 | 久久久久国产精品熟女影院浪 | 韩剧网韩剧TV在线观看 | 无码人妻精品一区二区三区不卡 | 丨国产丨调教丨91丨 | 青青草原亚洲 | 国产传媒果冻天美传媒怎么入职 | 乱人伦人妻精品一区二区 | 国产三级黄色 | 嗯啊ww免费视频网站 | 天天干国产 | 久久无码色综合中文字幕 | 男人操女人视频免费观看 | 久艹久久| 久久综合狠狠综合久久激情 | 国产露脸饥渴孕妇在线播放 | 欧美日韩黄视频 | 成人av中文解说水果派 |