使用eclipse搭建第一個python+Django的web開發實例

python+Django的web開發實例

 

1、建立一個項目
若是這是你第一次使用Django,那麼你必須進行一些初始設置。也就是經過自動生成代碼來創建一個Django項目--一個Django項目的設置集,包含了數據庫配置、Django詳細選項設置和應用 特性配置,具體操做步驟以下所示。css

1.新建Django項目


選擇sqlite數據庫
html

2.建立網站模塊app

python

3.測試新建的模塊是否正常
mysql

複製代碼
Validating models...

0 errors found
March 12, 2014 - 10:26:53
Django version 1.6.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
複製代碼

服務器啓動起來後,去瀏覽器輸入網址:http://127.0.0.1:8000,你會看到一個使人愉悅的,柔和的淡藍色 「Welcome to Django」 頁面。表示它已正常工做!

讓咱們來看看mysite都建立了些什麼:

這些文件分別是:
a、外層mysite目錄只是你項目的一個容器。對於Django來講該目錄名並不重要;你能夠重命名爲你喜歡的。
b、manage.py: 一個實用的命令行工具,可以讓你以各類方式與該Django項目進行交互。 
c、內層mysite目錄是你項目中的實際Python包。該目錄名就是Python包名,經過它你能夠導入它裏面的任何東西。(e.g.import mysite.settings).
d、mysite/__init__.py:一個空文件,告訴Python該目錄是一個Python包。 
e、mysite/settings.py:該Django項目的設置/配置。 
f、mysite/urls.py:該Django項目的URL聲明;一份由Django驅動的網站「目錄」。 
g、mysite/wsgi.py:一個WSGI兼容的Web服務器的入口,以便運行你的項目。web

更改端口號
默認狀況下,:djadmin:runserver 命令啓動的開發服務器只監聽本地IP的8000端口。sql

若是你想改變服務器的端口,把它做爲一個命令行參數傳遞便可。例如如下命令啓動的服務器將監聽8080端口:數據庫

複製代碼
C:\Users\D-117>cd F:\workspace\mysite\src\mysite\ #manage.py文件所在目錄,即mysite項目下
C:\Users\D-117>f:
F:\workspace\mysite\src\mysite>python manage.py runserver 8080
Validating models...

0 errors found
March 12, 2014 - 10:31:27
Django version 1.6.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8080/
Quit the server with CTRL-BREAK.
複製代碼

若是你想改變服務器IP,把它和端口號一塊兒傳遞便可。所以,要監聽全部公共IP地址(若是你想在其餘電腦上炫耀你的工做),請使用:
python manage.py runserver 0.0.0.0:8000django

數據庫設置
如今,編輯 mysite/settings.py 。 這是一個普通的Python模塊,包含了表明Django設置的模塊級變量。 更改DATABASES中'default'下的如下鍵的值,以匹配您的數據庫鏈接設置。
a、ENGINE – 從 'django.db.backends.postgresql_psycopg2', 'django.db.backends.mysql', 'django.db.backends.sqlite3', 'django.db.backends.oracle' 中選一個
b、NAME – 你的數據庫名。若是你使用 SQLite,該數據庫將是你計算機上的一個文件;在這種狀況下,:setting:NAME 將是一個完整的絕對路徑,並且還包含該文件的名稱。若是該文件不 
存在,它會在第一次同步數據庫時自動建立(見下文)。當指定路徑時,老是使用正斜槓,即便是在Windows下(例如:`C:/homes/user/mysite/sqlite3.db`) 。
c、USER – 你的數據庫用戶名 ( SQLite 下不須要) 。
d、PASSWORD – 你的數據庫密碼 ( SQLite 下不須要) 。
e、HOST – 你的數據庫主機地址。若是和你的數據庫服務器是同一臺物理機器,請將此處保留爲空 (或者設置爲 127.0.0.1) ( SQLite 下不須要) 。 
若是你是新建數據庫,咱們建議只使用 SQLite ,將 ENGINE 改成 'django.db.backends.sqlite3' 而且將 NAME 設置爲你想存放數據庫的地方。 SQLite 是內置在 Python 中的,所以你不須要安裝任何東西來支持你的數據庫。瀏覽器

注意:
若是你使用PostgreSQL或者MySQL,確保你已經建立了一個數據庫。仍是經過你的數據庫交互接口中的「CREATE DATABASE database_name;」命令作到這一點的。
若是你使用SQLite,你不須要事先建立任何東西 - 在須要的時候,將會自動建立數據庫文件。服務器

當你編輯 settings.py 時,將 TIME_ZONE 修改成你所在的時區。默認值是美國中央時區(芝加哥)。同時,注意文件底部的 INSTALLED_APPS 設置。它保存了當前 Django 實例已激活的所 
有 Django 應用。每一個應用能夠被多個項目使用,並且你能夠打包和分發給其餘人在他們的項目中使用。

默認狀況下,:setting:INSTALLED_APPS 包含如下應用,這些都是由 Django 提供的:

django.contrib.auth – 身份驗證系統。
django.contrib.contenttypes – 內容類型框架。
django.contrib.sessions – session 框架。
django.contrib.sites – 網站管理框架。
django.contrib.messages – 消息框架。
django.contrib.staticfiles – 靜態文件管理框架。

這些應用在通常狀況下是默認包含的。

全部這些應用中每一個應用至少使用一個數據庫表,因此在使用它們以前咱們須要建立數據庫中的表。要作到這一點,請運行如下命令:python manage.py syncdb,具體操做下面會闡述。

至此,項目開發環境創建好了,咱們能夠開工了。

2、建立模型

4.編輯代碼
4.1修改blog.models.py

複製代碼
from django.db import models
from django.contrib import admin

# Create your models here.
class BlogPost(models.Model):
    title = models.CharField(max_length = 150)
    content = models.TextField()
    timestamp = models.DateTimeField()
    
class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title', 'content', 'timestamp')

admin.site.register(BlogPost, BlogPostAdmin)
複製代碼

咱們將建立一個BlogPost模型,包含title、content、timestamp三個字段。每一個模型都繼承自django.db.models.Model子類的類來描述。 每一個模型 
都有一些類變量,每個類變量都表明了一個數據庫字段。

每一個字段由一個 Field 的實例來表現 – 好比 CharField 表示字符類型的字段和 DateTimeField 表示日期時間型的字段。這會告訴 Django 每一個 
字段都保存了什麼類型的數據。

每個 Field 實例的名字就是字段的名字(如: title、content、timestamp),其格式屬於親和機器式的。在你的 Python 的代碼中會使用這個 
值,而你的數據庫會將這個值做爲表的列名。

4.2修改blog.views.py

複製代碼
# Create your views here.
from django.template import loader,Context
from django.http import HttpResponse
from blog.models import BlogPost

def archive(request):
    posts = BlogPost.objects.all()
    t = loader.get_template('archive.html')
    c = Context({'posts': posts})
    return HttpResponse(t.render(c))
複製代碼

4.3修改mysite.setting.py,找到下面部分進行修改

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

4.4修改mysite.urls.py

複製代碼
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

from blog.views import archive

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'^blog/', archive),
)
複製代碼

5.創建樣式網頁模板
請在包blog下添加templates文件夾,並在templates下創建兩個網頁文件:archive.html和base.html

5.1編輯archive.html

複製代碼
{% extends "base.html" %}  
{% block content %}  
{% for post in posts %}  
<h1>{{ post.title}}</h1>  
<p>{{ post.content }}</p>
<p>{{ post.timestamp|date:"1, F jS"}}</p>
{% endfor %}  
{% endblock %}
複製代碼

5.2編輯base.html

複製代碼
<html>  
  <style type="text/css">  
    body { color: #edf; background: #453; padding: 0 5em; margin:0 }  
    h1 { padding: 2em lem; background:#675 }  
    h2 { color: #bf8; border-top: 1px dotted #fff; margin-top: 2em }  
    p { margin: lem 0 }  
  </style>  
  <body>  
    <h1><center>Alexia's Blog</center></h1>  
    {% block content %}  
    {% endblock %}  
  </body>  
</html>
複製代碼

3、同步數據庫

設置你的帳號和密碼,爲登錄blog的管理後臺做準備。

複製代碼
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session

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): yes
Username (leave blank to use 'd-117'): root
Email address: root@qq.com
Password: root
Password (again): root
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
Finished "F:\workspace\mysite\src\mysite\manage.py syncdb" execution.
複製代碼

四.運行測試
登錄界面,登錄帳號和密碼是初始化數據庫的時候設定的。

登陸成功後跳轉到下面頁面:

在該頁面能夠添加blog文章:

發佈成功後,輸入網址:http://127.0.0.1:8000/blog/進行查看,測試成功!

相關文章
相關標籤/搜索