国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

django開發(fā)博客(1)入門

2019-11-14 17:02:27
字體:
供稿:網(wǎng)友

現(xiàn)在正式開始博客開發(fā)

1、安裝django1.4

如果你使用的是fedoraDVD版,安裝時(shí)選擇了web開發(fā)組建,這一步可以省略,因?yàn)樗詭jango環(huán)境

django下載地址 https://www.djangoPRoject.com/download/  這里我們選擇最新版

然后在終端下打開下載目錄

tar xzvf Django-*.tar.gz 。cd Django-* 。sudo python setup.py install

如果系同時(shí)window

解壓后再控制臺(tái)進(jìn)入解壓后的目錄

python setup.py install

 

測(cè)試安裝

打開Python的交互解釋器

如果出現(xiàn)以下內(nèi)容,安裝成功!

>>> import django>>> django.VERSION(1, 4, 1, 'final', 0)

2、新建project

打開終端 輸入

django-admin startproject blog

有些需要輸入

django-admin.py startproject blog

你會(huì)發(fā)現(xiàn)主文件夾下多出一個(gè)目錄 blog

目錄結(jié)構(gòu)為

blog/    manage.py    blog/        __init__.py        settings.py        urls.py        wsgi.py

manage.py :一種命令行工具,可讓你以多種方式與該 Django 項(xiàng)目進(jìn)行交互。 鍵入python manage.py help,看一下它能做什么。

__init__.py :讓 Python 把該目錄當(dāng)成一個(gè)開發(fā)包 (即一組模塊)所需的文件。 這是一個(gè)空文件,一般你不需要修改它

settings.py :該 Django 項(xiàng)目的設(shè)置或配置。 查看并理解這個(gè)文件中可用的設(shè)置類型及其默認(rèn)值

urls.py:django項(xiàng)目的URL設(shè)置。 可視其為你的django網(wǎng)站的目錄

wsgi.py: An entry-point for WSGI-compatible webservers to serve your project.See How to deploy with WSGI for more details.

具體使用方法參考 文檔 https://docs.djangoproject.com/en/1.4/intro/tutorial01/

運(yùn)行服務(wù)器

在終端打開項(xiàng)目目錄 輸入

python manage.py runserver
Validating models...0 errors foundDjango version 1.4.1, using settings 'blog.settings'Development server is running at http://127.0.0.1:8000/Quit the server with CONTROL-C.

出現(xiàn)以上選項(xiàng)說明運(yùn)行服務(wù)器成功

訪問 http://127.0.0.1:8000/ 你將看到

django-code123-01

3、新建blogapp

在終端打開項(xiàng)目目錄輸入

python manage.py startapp sblog

現(xiàn)在新建好了一個(gè)名為sblog的博客應(yīng)用

sblog/    __init__.py    models.py    tests.py    views.py

這個(gè)目錄包含了這個(gè)app的模型和視圖

4、models的配置

因?yàn)槭褂胊pp必須用到數(shù)據(jù)庫,現(xiàn)在我們配置一下數(shù)據(jù)庫 打開setting.py

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',  # Add 'postgresql_psycopg2', 'MySQL', 'sqlite3' or 'Oracle'.        'NAME': '/home/gs/blog/datas/mydata.db',  # 這里是我數(shù)據(jù)庫文件存放的目錄,你應(yīng)該替換成你自己的.        'USER': '',                       # Not used with sqlite3.        'PASSWord': '',                   # Not used with sqlite3.        'HOST': '',                       # Set to empty string for localhost. Not used with sqlite3.        'PORT': '',                       # Set to empty string for default. Not used with sqlite3.    }}

 

因?yàn)閜ython自帶sqlite3,為了方便我們就直接使用。

其它數(shù)據(jù)庫的配置參見 https://docs.djangoproject.com/en/1.4/ref/databases/

現(xiàn)在我們配置models.py

from django.db import modelsclass Tag(models.Model):    """docstring for Tags"""    tag_name = models.CharField(max_length=20, blank=True)    create_time = models.DateTimeField(auto_now_add=True)    def __unicode__(self):        return self.tag_nameclass Author(models.Model):    """docstring for Author"""    name = models.CharField(max_length=30)    email = models.EmailField(blank=True)    website = models.URLField(blank=True)    def __unicode__(self):        return u'%s' % (self.name)class Blog(models.Model):    """docstring for Blogs"""    caption = models.CharField(max_length=50)    author = models.ForeignKey(Author)    tags = models.ManyToManyField(Tag, blank=True)    content = models.TextField()    publish_time = models.DateTimeField(auto_now_add=True)    update_time = models.DateTimeField(auto_now=True)    def __unicode__(self):        return u'%s %s %s' % (self.caption, self.author, self.publish_time)

 

安裝 models

首先修改setting.py

MIDDLEWARE_CLASSES = (    'django.middleware.common.CommonMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'django.middleware.locale.LocaleMiddleware',    # Uncomment the next line for simple clickjacking protection:    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',)INSTALLED_APPS = (    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.sites',    'django.contrib.messages',    'django.contrib.staticfiles',    # Uncomment the next line to enable the admin:'django.contrib.admin',    # Uncomment the next line to enable admin documentation:    'django.contrib.admindocs',      'sblog',   )

 

然后,用下面的命令對(duì)校驗(yàn)?zāi)P偷挠行裕?/p>

python manage.py validate

validate 命令檢查你的模型的語法和邏輯是否正確。 如果一切正常,你會(huì)看到 0 errors found 消息。 如果有問題,它會(huì)給出非常有用的錯(cuò)誤信息來幫助你 修正你的模型。

最后

python manage.py syncdb

你將看到類似與下面的內(nèi)容

Creating tables ...Creating table auth_permissionCreating table auth_group_permissionsCreating table auth_groupCreating table auth_user_user_permissionsCreating table auth_user_groupsCreating table auth_userCreating table django_content_typeCreating table django_sessionCreating table django_siteCreating table django_admin_logCreating table sblog_tagCreating table sblog_authorCreating table sblog_blog_tagsCreating table sblog_blog

 

因?yàn)槲覀冃薷膕etting.py時(shí)將

'django.contrib.admin','django.contrib.admindocs',

注釋去掉了,所以在 執(zhí)行

python manage.py syncdb
時(shí)會(huì) 出現(xiàn)You just installed Django's auth system, which means you don't have any superusers defined.Would you like to create one now? (yes/no): 讓我們新建用戶用于admin管理 ,創(chuàng)建用戶就可以了5、admin的配置使用修改blog 目錄下 urls.py添加
from django.contrib import adminadmin.autodiscover()
在 patterns 添加 (如果一直沒改過該文件的話 只要將這兩行注釋去掉就可以了)
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),url(r'^admin/', include(admin.site.urls)),

此時(shí) 打開 http://127.0.0.1:8000/admin/

就可以使用admin了,登錄之后界面為:django-code123-02

如果你發(fā)現(xiàn)我們新建的sblog并沒有出現(xiàn),恭喜你,你有很強(qiáng)的觀察能力,很細(xì)心,很。。。。

我還是接著說怎么用admin管理我們的sblog吧。

首先再sblog目錄下新建admin.py 添加以下內(nèi)容 再刷新admin頁面 將會(huì)有驚喜哦

#!/usr/bin/python# -*- coding: utf-8 -*-from django.contrib import adminfrom sblog.models import Author, Blog, Tagclass AuthorAdmin(admin.ModelAdmin):    """docstring for AuthorAdmin"""    list_display = ('name', 'email', 'website')    search_fields = ('name',)class BlogAdmin(admin.ModelAdmin):    """docstring for BlogAdmin"""    list_display = ('caption', 'id', 'author', 'publish_time')    list_filter = ('publish_time',)    date_hierarchy = 'publish_time'    ordering = ('-publish_time',)    filter_horizontal = ('tags',)    # raw_id_fields = ('author',)  # 它是一個(gè)包含外鍵字段名稱的元組,它包含的字段將被展現(xiàn)成`` 文本框`` ,而不再是`` 下拉框`` 。admin.site.register(Author, AuthorAdmin)admin.site.register(Blog, BlogAdmin)admin.site.register(Tag)

其中 AuthorAdmin 和 BlogAdmin 是 自定義ModelAdmi類 用于自定義admin顯示

list_display = ('caption', 'id', 'author', 'publish_time') 表示 按照 caption id author publish_time 顯示 另外,點(diǎn)擊每個(gè)列的列頭可以對(duì)那列進(jìn)行排序。

search_fields = ('name',) 刷新瀏覽器,你會(huì)在頁面頂端看到一個(gè)查詢欄。我們剛才所作的修改列表頁面,添加了一個(gè)根據(jù)姓名查詢的查詢框

list_filter = ('publish_time',) 用于在右邊生成一個(gè)過濾器,按照發(fā)表時(shí)間過濾

date_hierarchy = 'publish_time' 也是時(shí)間過濾器 修改好后,頁面中的列表頂端會(huì)有一個(gè)逐層深入的導(dǎo)航條,它從可用的年份開始,然后逐層細(xì)分到月乃至日。

ordering = ('-publish_time',) 按照發(fā)表時(shí)間排序 默認(rèn)是從前往后排序 加‘-’表示將最近發(fā)表的放到前面,從后往前倒序排列

filter_horizontal = ('tags',) 用于多對(duì)多字段顯示,出現(xiàn)一個(gè)精巧的javaScript過濾器,它允許你檢索選項(xiàng),然后將選中的tag從Available框移到Chosen框,還可以移回來

其它一些自定義方法參見文檔吧 https://docs.djangoproject.com/en/1.4/ref/contrib/admin/

到現(xiàn)在為止,我們已經(jīng)可以使用admin管理我們的博客

【Django博客開發(fā)】系列文章:

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大庆市| 通道| 黔西县| 许昌市| 中卫市| 句容市| 三河市| 衡东县| 固阳县| 英德市| 密云县| 靖西县| 西畴县| 盖州市| 抚远县| 东丰县| 天镇县| 大竹县| 泽库县| 临泉县| 讷河市| 九寨沟县| 樟树市| 克拉玛依市| 房山区| 沧源| 定襄县| 青田县| 乌拉特后旗| 诸暨市| 西贡区| 正定县| 华池县| 临夏县| 高要市| 涿鹿县| 舒城县| 东宁县| 杭锦后旗| 海安县| 双城市|