python+Django的web簡單入門
一、建立一個專案
如果這是你第一次使用Django,那麼你必須進行一些初始設定。也就是通過自動生成程式碼來建立一個Django專案--一個Django專案的設定集,包含了資料庫配置、Django詳細選項設定和應用 特性配置,具體操作步驟如下所示。
1.新建Django專案
選擇sqlite資料庫
2.建立網站模組app
3.測試新建的模組是否正常
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伺服器的入口,以便執行你的專案。
更改埠號
預設情況下,:djadmin:runserver 命令啟動的開發伺服器只監聽本地IP的8000埠。
如果你想改變伺服器的埠,把它作為一個命令列引數傳遞即可。例如以下命令啟動的伺服器將監聽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:8000
資料庫設定
現在,編輯 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,具體操作下面會闡述。
至此,專案開發環境建立好了,我們可以開工了。
二、建立模型
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>
三、同步資料庫
設定你的賬號和密碼,為登陸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: [email protected]
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/進行檢視,測試成功!
相關推薦
[Python]Pandas簡單入門(轉)
本篇文章轉自 https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?hl=zh-cn#scrollTo=zCOn8ftSyddH 是Google的Machine Learning課程中關
python html簡單入門
# HTML入門 ### C/S與B/S架構 - C/S架構 - client:客戶端 - server:伺服器 - B/S架構 - browser:瀏覽器 - server:伺服器 ### WEB工作原理 - 瀏覽器 => 伺服器:傳送請求,索取相關資料。 - 伺服器 =
協同過濾演算法python實現簡單入門詳細註釋
基於Python2.7 資料集為MovieLens 100k資料集 # -*-coding=utf-8 -*- import sys import math from texttable import Texttable #演算法流程: #1、建立電影-使用者的倒排
[python]Flask-migrate簡單入門
ini rate 源文件 .config mar bic 生成 tps lan Flask-Migrate是用於處理SQLAlchemy 數據庫遷移的擴展工具。當Model出現變更的時候,通過migrate去管理數據庫變更。 Migrate主要有3個動作,init、migr
Python系列課程——人工智能篇簡單入門
卷積 發展 學習 自然 歷史 手寫體識別 自然語言處理技術 一個 編寫 1、基礎篇——基於Python的機器學習>>>>>>戳我,立即學習 現在大熱、為未來計算機科學發展方向的機器學習了解多少呢? 下面推薦的這個內容比較適合小白,
python 程式設計從入門到實踐 第二章 變數和簡單資料型別
-- 變數 message = "hello python word" print(message) -- 練習 vi simple_message.py #!/usr
Python SQL 語法簡單入門
Python SQL 語法簡單入門 大家好,今天給大家分享一些python中基本的sql語法。基本是按照sqlite3 來寫的。 引題 為什麼要使用資料庫? 持久化 ,記憶體中的變數當程式重啟和電腦斷電時丟失資料,而硬碟可以長時間、持久地儲存資料。資料儲存到硬碟上的過
Python程式設計:從入門到實踐—變數和簡單資料型別
變數的命名和使用 #!/usr/bin/env python# -*- encoding:utf-8 -*- message ="Hello Python world!"print(message) 在Python中使用變數時,需要遵守一些規則。 變數名只能包含字母、數字和下劃線。變數名可以
python資料分析超簡單入門 -- 專案實踐篇
| 導語 適用於資料分析小白們~ ------ up主也是小白一枚,大加一起交流哈 寫在前面的話: 1、專案來源於up主自學udacity中的一個專案實踐,up主自身能力不足,因此文章很淺顯 2、泰坦尼克資料集是kaggle中一個好的可選資料集,網上有很多基於此資料集的分析&a
Python打包系統簡單入門
最近把pyenv、pipenv這種都研究了一下,然後我發現一個嚴重的問題:就是我雖然看了半天這些工具,但是我對Python自己的打包系統卻完全沒有了解。所以這篇文章就來研究一下Python自帶的打包系統。 pip 先來詳細介紹一下pip的用法,平時基本上我們用p
Python編寫簡單爬蟲之新手入門(一)
最近學習了一下python的基礎知識,大家一般對“爬蟲”這個詞,一聽就比較熟悉,都知道是爬一些網站上的資料,然後做一些操作整理,得到人們想要的資料,但是怎麼寫一個爬蟲程式程式碼呢?相信很多人是不會的,今天寫一個針對新手入門想要學習爬蟲的文章,希望對想要學習的你能有所幫助~~廢
Python爬蟲的簡單入門及實用的例項(1)
一.PYthon爬蟲的介紹及應用 利用爬蟲可以進行資料探勘,比如可以爬取別人的網頁,收集有用的資料進行整合和劃分,簡單的就是用程式爬取網頁上的所有圖片並儲存在自己新建的資料夾內,還有可以爬社交網站的自拍圖,將幾十萬張的圖片合在一起,就知道大眾的模樣。也可以將爬取的
《python程式設計從入門到實踐》變數和簡單資料型別
變數的命名和使用 python的變數命名和c有一樣的規則: 變數名只能包含字母、數字、下劃線,只能以字母、下劃線開頭。 變數名中不能有空格(一般習慣用下劃線來分隔單詞) 不能將python的關鍵字和函式名用作變數名
【Python】Python簡單入門
Python介紹 Python是一種高階的、動態型別的多範型程式語言。現在常用的Python版本是Python3.x。 Python程式碼通常被認為是虛擬碼,因為在簡明易懂的幾行程式碼中可以表達出非常強大的思想。 舉例說明,下面是Python中經典的快速排序演算法的實現: >
【Python】Numpy簡單入門
Numpy Numpy是Python中科學計算的核心庫。Numpy提供了高效能的多維陣列物件,還有用於處理這些陣列的工具。 陣列 Numpy的主要資料型別是ndarray即多維陣列,可以用巢狀的Python列表中初始化numpy陣列,並使用方括號訪問元素。陣列具有以下幾個屬性:
python+Django的web簡單入門
一、建立一個專案 如果這是你第一次使用Django,那麼你必須進行一些初始設定。也就是通過自動生成程式碼來建立一個Django專案--一個Django專案的設定集,包含了資料庫配置、Django詳細選項設定和應用 特性配置,具體操作步驟如下所示。 1.新建Django專案 選擇sqlite資料庫 2.
python 編寫簡單的setup.py
ria 如何 代碼 使用 文本 highlight ttl pac 文件夾 學習python也已經有一段時間了,發現python作為腳本語言一個很重要的特點就是簡單易用,而且擁有巨多的第三方庫,幾乎方方面面的庫都有,無論你處於哪個行業,想做什麽工作,幾乎都能找到對應的第
day1 python簡介和入門
back argv 安裝gcc www 導入 urn 16px 利用 表示 Linux的yum依賴自帶Python,為防止錯誤,此處更新其實就是再安裝一個Python: 安裝Python 1、下載安裝包 https://www.python.
11.python並發入門(part3 多線程與互斥鎖)
python 線程 lock 互斥鎖 一、鎖的概念。鎖,通常被用來實現共享數據的訪問,為每一個共享的數據,創建一個Lock對象(一把鎖),當需要訪問這個共享的資源時,可以調用acquire方法來獲取一個鎖的對象,當共享資源訪問結束後,在調用release方法去解鎖。二、python中的互斥鎖。
11.python並發入門(part4 死鎖與遞歸鎖)
python lock 線程 互斥鎖 rlock 一、關於死鎖。死鎖,就是當多個進程或者線程在執行的過程中,因爭奪共享資源而造成的一種互相等待的現象,一旦產生了死鎖,不加人工處理,程序會一直等待下去,這也被稱為死鎖進程。下面是一個產生“死鎖”現象的例子:import threadingim