最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python Django的web開發(fā)實(shí)例(入門)

 更新時(shí)間:2019年07月31日 11:16:17   作者:Watson2016  
這篇文章主要介紹了python Django的web開發(fā)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、創(chuàng)建一個(gè)項(xiàng)目

如果這是你第一次使用Django,那么你必須進(jìn)行一些初始設(shè)置。也就是通過自動(dòng)生成代碼來建立一個(gè)Django項(xiàng)目--一個(gè)Django項(xiàng)目的設(shè)置集,包含了數(shù)據(jù)庫配置、Django詳細(xì)選項(xiàng)設(shè)置和應(yīng)用 特性配置,具體操作步驟如下所示。

1.新建Django項(xiàng)目



選擇sqlite數(shù)據(jù)庫

2.創(chuàng)建網(wǎng)站模塊app


3.測(cè)試新建的模塊是否正常

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.

服務(wù)器啟動(dòng)起來后,去瀏覽器輸入網(wǎng)址:http://127.0.0.1:8000,你會(huì)看到一個(gè)令人愉悅的,柔和的淡藍(lán)色 “Welcome to Django” 頁面。表示它已正常工作!


讓我們來看看mysite都創(chuàng)建了些什么:


這些文件分別是:
a、外層mysite目錄只是你項(xiàng)目的一個(gè)容器。對(duì)于Django來說該目錄名并不重要;你可以重命名為你喜歡的。
b、manage.py: 一個(gè)實(shí)用的命令行工具,可讓你以各種方式與該Django項(xiàng)目進(jìn)行交互。 
c、內(nèi)層mysite目錄是你項(xiàng)目中的實(shí)際Python包。該目錄名就是Python包名,通過它你可以導(dǎo)入它里面的任何東西。(e.g.import mysite.settings).
d、mysite/__init__.py:一個(gè)空文件,告訴Python該目錄是一個(gè)Python包。 
e、mysite/settings.py:該Django項(xiàng)目的設(shè)置/配置。 
f、mysite/urls.py:該Django項(xiàng)目的URL聲明;一份由Django驅(qū)動(dòng)的網(wǎng)站“目錄”。 
g、mysite/wsgi.py:一個(gè)WSGI兼容的Web服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。

更改端口號(hào)

默認(rèn)情況下,:djadmin:runserver 命令啟動(dòng)的開發(fā)服務(wù)器只監(jiān)聽本地IP的8000端口。

如果你想改變服務(wù)器的端口,把它作為一個(gè)命令行參數(shù)傳遞即可。例如以下命令啟動(dòng)的服務(wù)器將監(jiān)聽8080端口:

C:\Users\D-117>cd F:\workspace\mysite\src\mysite\ #manage.py文件所在目錄,即mysite項(xiàng)目下
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.

如果你想改變服務(wù)器IP,把它和端口號(hào)一起傳遞即可。因此,要監(jiān)聽所有公共IP地址(如果你想在其他電腦上炫耀你的工作),請(qǐng)使用:

python manage.py runserver 0.0.0.0:8000

數(shù)據(jù)庫設(shè)置

現(xiàn)在,編輯 mysite/settings.py 。 這是一個(gè)普通的Python模塊,包含了代表Django設(shè)置的模塊級(jí)變量。 更改DATABASES中'default'下的以下鍵的值,以匹配您的數(shù)據(jù)庫連接設(shè)置。
a、ENGINE – 從 'django.db.backends.postgresql_psycopg2', 'django.db.backends.mysql', 'django.db.backends.sqlite3', 'django.db.backends.oracle' 中選一個(gè)
b、NAME – 你的數(shù)據(jù)庫名。如果你使用 SQLite,該數(shù)據(jù)庫將是你計(jì)算機(jī)上的一個(gè)文件;在這種情況下,:setting:NAME 將是一個(gè)完整的絕對(duì)路徑,而且還包含該文件的名稱。如果該文件不 
存在,它會(huì)在第一次同步數(shù)據(jù)庫時(shí)自動(dòng)創(chuàng)建(見下文)。當(dāng)指定路徑時(shí),總是使用正斜杠,即使是在Windows下(例如:`C:/homes/user/mysite/sqlite3.db`) 。
c、USER – 你的數(shù)據(jù)庫用戶名 ( SQLite 下不需要) 。
d、PASSWORD – 你的數(shù)據(jù)庫密碼 ( SQLite 下不需要) 。
e、HOST – 你的數(shù)據(jù)庫主機(jī)地址。如果和你的數(shù)據(jù)庫服務(wù)器是同一臺(tái)物理機(jī)器,請(qǐng)將此處保留為空 (或者設(shè)置為 127.0.0.1) ( SQLite 下不需要) 。 

如果你是新建數(shù)據(jù)庫,我們建議只使用 SQLite ,將 ENGINE 改為 'django.db.backends.sqlite3' 并且將 NAME 設(shè)置為你想存放數(shù)據(jù)庫的地方。 SQLite 是內(nèi)置在 Python 中的,因此你不需要安裝任何東西來支持你的數(shù)據(jù)庫。

注意:

如果你使用PostgreSQL或者M(jìn)ySQL,確保你已經(jīng)創(chuàng)建了一個(gè)數(shù)據(jù)庫。還是通過你的數(shù)據(jù)庫交互接口中的“CREATE DATABASE database_name;”命令做到這一點(diǎn)的。
如果你使用SQLite,你不需要事先創(chuàng)建任何東西 - 在需要的時(shí)候,將會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)庫文件。

當(dāng)你編輯 settings.py 時(shí),將 TIME_ZONE 修改為你所在的時(shí)區(qū)。默認(rèn)值是美國中央時(shí)區(qū)(芝加哥)。同時(shí),注意文件底部的 INSTALLED_APPS 設(shè)置。它保存了當(dāng)前 Django 實(shí)例已激活的所 
有 Django 應(yīng)用。每個(gè)應(yīng)用可以被多個(gè)項(xiàng)目使用,而且你可以打包和分發(fā)給其他人在他們的項(xiàng)目中使用。

默認(rèn)情況下,:setting:INSTALLED_APPS 包含以下應(yīng)用,這些都是由 Django 提供的:

  • django.contrib.auth – 身份驗(yàn)證系統(tǒng)。
  • django.contrib.contenttypes – 內(nèi)容類型框架。
  • django.contrib.sessions – session 框架。
  • django.contrib.sites – 網(wǎng)站管理框架。
  • django.contrib.messages – 消息框架。
  • django.contrib.staticfiles – 靜態(tài)文件管理框架。

這些應(yīng)用在一般情況下是默認(rèn)包含的。

所有這些應(yīng)用中每個(gè)應(yīng)用至少使用一個(gè)數(shù)據(jù)庫表,所以在使用它們之前我們需要?jiǎng)?chuàng)建數(shù)據(jù)庫中的表。要做到這一點(diǎn),請(qǐng)運(yùn)行以下命令:python manage.py syncdb,具體操作下面會(huì)闡述。

至此,項(xiàng)目開發(fā)環(huán)境建立好了,我們可以開工了。

二、創(chuàng)建模型

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)

我們將創(chuàng)建一個(gè)BlogPost模型,包含title、content、timestamp三個(gè)字段。每個(gè)模型都繼承自django.db.models.Model子類的類來描述。 每個(gè)模型都有一些類變量,每一個(gè)類變量都代表了一個(gè)數(shù)據(jù)庫字段。

每個(gè)字段由一個(gè) Field 的實(shí)例來表現(xiàn) – 比如 CharField 表示字符類型的字段和 DateTimeField 表示日期時(shí)間型的字段。這會(huì)告訴 Django 每個(gè)字段都保存了什么類型的數(shù)據(jù)。

每一個(gè) Field 實(shí)例的名字就是字段的名字(如: title、content、timestamp),其格式屬于親和機(jī)器式的。在你的 Python 的代碼中會(huì)使用這個(gè)值,而你的數(shù)據(jù)庫會(huì)將這個(gè)值作為表的列名。

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,找到下面部分進(jìn)行修改

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.建立樣式網(wǎng)頁模板

請(qǐng)?jiān)诎黚log下添加templates文件夾,并在templates下建立兩個(gè)網(wǎng)頁文件: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>

三、同步數(shù)據(jù)庫


設(shè)置你的賬號(hào)和密碼,為登陸blog的管理后臺(tái)作準(zhǔn)備。

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.

四.運(yùn)行測(cè)試

登陸界面,登陸賬號(hào)和密碼是初始化數(shù)據(jù)庫的時(shí)候設(shè)定的。


登錄成功后跳轉(zhuǎn)到下面頁面:


在該頁面可以添加blog文章:


發(fā)布成功后,輸入網(wǎng)址:http://127.0.0.1:8000/blog/進(jìn)行查看,測(cè)試成功!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 200 行python 代碼實(shí)現(xiàn) 2048 游戲

    200 行python 代碼實(shí)現(xiàn) 2048 游戲

    2048這個(gè)小游戲大家都不陌生,應(yīng)該都玩過,之前已經(jīng)在網(wǎng)上見過各個(gè)版本的2048實(shí)現(xiàn)了,有JAVA、HTML5等,今天我就給大家來一個(gè)我200 行python 代碼實(shí)現(xiàn)的2048 游戲,感興趣的朋友一起看看吧
    2018-01-01
  • 深入理解Python中命名空間的查找規(guī)則LEGB

    深入理解Python中命名空間的查找規(guī)則LEGB

    這篇文章主要介紹了深入理解Python中命名空間的查找規(guī)則LEGB,作者根據(jù)Python3.x版本進(jìn)行講解,需要的朋友可以參考下
    2015-08-08
  • Pycharm最新激活碼2019(推薦)

    Pycharm最新激活碼2019(推薦)

    這篇文章主要介紹了Pycharm最新激活碼2019,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python連接打印機(jī)實(shí)現(xiàn)自動(dòng)化打印的實(shí)用技巧和示例代碼

    Python連接打印機(jī)實(shí)現(xiàn)自動(dòng)化打印的實(shí)用技巧和示例代碼

    在計(jì)算機(jī)科學(xué)領(lǐng)域,打印機(jī)是一種重要的外部設(shè)備,用于將電子文檔轉(zhuǎn)換成實(shí)際的紙質(zhì)文件,下面這篇文章主要給大家介紹了關(guān)于Python連接打印機(jī)實(shí)現(xiàn)自動(dòng)化打印的實(shí)用技巧和示例代碼,需要的朋友可以參考下
    2024-05-05
  • Python使用Traits庫實(shí)現(xiàn)對(duì)象屬性

    Python使用Traits庫實(shí)現(xiàn)對(duì)象屬性

    Python作為一種動(dòng)態(tài)編程語言,它的變量沒有類型,這種靈活性給快速開發(fā)帶來很多便利,不過它也不是沒有缺點(diǎn),Traits庫的一個(gè)很重要的目的就是為了解決這些缺點(diǎn)所帶來的問題,trait為Python對(duì)象的屬性增加了類型定義的功能
    2023-11-11
  • Python實(shí)現(xiàn)隨機(jī)分層抽樣的示例詳解

    Python實(shí)現(xiàn)隨機(jī)分層抽樣的示例詳解

    在數(shù)據(jù)分析與機(jī)器學(xué)習(xí)的實(shí)踐中,抽樣是不可或缺的一步,分層抽樣作為一種常用的抽樣方法,能夠確保樣本在不同類別中的比例與總體一致,下面我們看看如何使用Python實(shí)現(xiàn)隨機(jī)分層抽樣吧
    2024-11-11
  • django和vue互傳圖片并進(jìn)行處理和展示

    django和vue互傳圖片并進(jìn)行處理和展示

    在項(xiàng)目中圖片上傳并附帶幾個(gè)參數(shù)的場(chǎng)景非常常見,如果技術(shù)棧是Vue+Django的小伙伴就一定會(huì)遇到這個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于django和vue互傳圖片并進(jìn)行處理和展示的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 在Python的setuptools框架下生成egg的教程

    在Python的setuptools框架下生成egg的教程

    這篇文章主要介紹了在Python的setuptools框架下生成egg的教程,本文來自于IBM官方開發(fā)者技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python進(jìn)階學(xué)習(xí)之你真的懂元組嗎?

    Python進(jìn)階學(xué)習(xí)之你真的懂元組嗎?

    在我們學(xué)習(xí)python的過程中,對(duì)元組的介紹通常是成為”不可變的列表“,但是這其實(shí)并沒有完全的概括元組的功能。在本文中,我們將會(huì)介紹元組作為記錄的功能,話不多說我們開始吧
    2023-04-04
  • 如何將matlab數(shù)據(jù)導(dǎo)入到Python中使用

    如何將matlab數(shù)據(jù)導(dǎo)入到Python中使用

    這篇文章主要介紹了如何將matlab數(shù)據(jù)導(dǎo)入到Python中使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

湘乡市| 永和县| 海南省| 军事| 安顺市| 社旗县| 建德市| 威远县| 枞阳县| 如东县| 疏勒县| 普兰店市| 水富县| 新余市| 建瓯市| 罗田县| 哈密市| 手游| 侯马市| 白河县| 宜春市| 宜兴市| 玉山县| 鄯善县| 荃湾区| 大名县| 大洼县| 兴和县| 沂水县| 铜陵市| 武冈市| 宜昌市| 山西省| 子洲县| 襄樊市| 彰化县| 土默特右旗| 融水| 黎城县| 大冶市| 平遥县|