国产成+人+综合+亚洲 欧美-国产成+人+综合+亚洲专-国产成+人欧美+综合在线观看-国产成a人片在线观看视频-国产成a人片在线观看视频99-国产成a人片在线观看视频下载

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Python全棧+人工智能入門教材 > Python基礎(chǔ)入門教程68:Django 項(xiàng)目和應(yīng)用程序

Python基礎(chǔ)入門教程68:Django 項(xiàng)目和應(yīng)用程序

來源:奇酷教育 發(fā)表于:

要啟動(dòng) Django 項(xiàng),請使用 django-adminstartproject命令,如下所示:清單 3 啟動(dòng)項(xiàng)目1~ dev$ django-admin py startproject djpr

要啟動(dòng) Django 項(xiàng),請使用 django-admin startproject 命令,如下所示:
清單 3. 啟動(dòng)項(xiàng)目
1
~/dev$ django-admin.py startproject djproject

上面這個(gè)命令會(huì)創(chuàng)建一個(gè) djproject 目錄,其中包含了運(yùn)行 Django 項(xiàng)目所需要的基本配置文件:

清單 4. djproject 目錄的內(nèi)容
1
2
3
4
__init__.py
manage.py
settings.py
urls.py

對(duì)于這個(gè)項(xiàng)目來說,我們要構(gòu)建一個(gè)職位公告板應(yīng)用程序 “jobs”。要?jiǎng)?chuàng)建應(yīng)用程序,可以使用 manage.py 腳本,這是一個(gè)特定于項(xiàng)目的 django-admin.py 腳本,其中 settings.py 文件可以自動(dòng)提供:

清單 5. 使用 manage.py startapp
1
2
~/dev$ cd djproject
~/dev/djproject$ python manage.py startapp jobs

這將創(chuàng)建一個(gè)應(yīng)用程序骨架,其中模型有一個(gè) Python 模塊,視圖有另外一個(gè) Python 模塊。jobs 目錄中包含以下文件:

清單 6. jobs 應(yīng)用程序目錄中的內(nèi)容
1
2
3
__init__.py
models.py
views.py

提供應(yīng)用程序在項(xiàng)目中的位置純粹是為新 Django 開發(fā)人員建立的一種慣例,并不是必需的。一旦開始在幾個(gè)項(xiàng)目中混合使用應(yīng)用程序,就可以將應(yīng)用程序放到自己的命名空間中,并使用設(shè)置和主 URL 文件將它們綁定在一起?,F(xiàn)在,請按照下面給出的步驟執(zhí)行操作。

為了使 Django 認(rèn)識(shí)到新應(yīng)用程序的存在,還需要向 settings.py 文件中的 INSTALLED_APPS 添加一個(gè)條目。對(duì)于這個(gè)職位公告板應(yīng)用程序來說,我們必須添加字符串 djproject.jobs

清單 7. 向 settings.py 中添加一個(gè)條目
1
2
3
4
5
6
7
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'djproject.jobs',
)

創(chuàng)建一個(gè)模型

Django 提供了自己的對(duì)象關(guān)系型數(shù)據(jù)映射組件(object-relational mapper,ORM)庫,它可以通過 Python 對(duì)象接口支持動(dòng)態(tài)數(shù)據(jù)庫訪問。這個(gè) Python 接口非常有用,功能十分強(qiáng)大,但如果需要,也可以靈活地不使用這個(gè)接口,而是直接使用 SQL。

ORM 目前提供了對(duì) PostgreSQL、MySQL、SQLite 和 Microsoft® SQL 數(shù)據(jù)庫的支持。

這個(gè)例子使用 SQLite 作為后臺(tái)數(shù)據(jù)庫。SQLite 是一個(gè)輕量級(jí)數(shù)據(jù)庫,它不需要進(jìn)行任何配置,自身能夠以一個(gè)簡單文件的形式存在于磁盤上。要使用 SQLite,可以簡單地使用 setuptools 來安裝 pysqlite(有關(guān) setuptools 的更多資料,尤其是有關(guān) easy_install 工具(需要單獨(dú)安裝)的資料,請參閱 參考資料):

easy_install pysqlite

在使用這個(gè)模型之前,需要在設(shè)置文件中對(duì)數(shù)據(jù)庫進(jìn)行配置。SQLite 只需要指定數(shù)據(jù)庫引擎和數(shù)據(jù)庫名即可。

清單 8. 在 settings.py 中配置數(shù)據(jù)庫
1
2
3
4
5
6
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = '/path/to/dev/djproject/database.db'
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''

這個(gè)職位公告板應(yīng)用程序有兩種類型的對(duì)象:Location 和 Job。Location 包含 city、state(可選)和 country 字段。Job 包含 location、title、description 和 publish date 字段。

清單 9. jobs/models.py 模塊
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from django.db import models
 
class Location(models.Model):
    city = models.CharField(maxlength=50)
    state = models.CharField(maxlength=50, null=True, blank=True)
    country = models.CharField(maxlength=50)
 
    def __str__(self):
        if self.state:
            return "%s, %s, %s" % (self.city, self.state, self.country)
        else:
            return "%s, %s" % (self.city, self.country)
 
class Job(models.Model):
    pub_date = models.DateField()
    job_title = models.CharField(maxlength=50)
    job_description = models.TextField()
    location = models.ForeignKey(Location)
 
    def __str__(self):
        return "%s (%s)" % (self.job_title, self.location)

__str__ 方法是 Python 中的一個(gè)特殊類,它返回對(duì)象的字符串表示。Django 在 Admin 工具中顯示對(duì)象時(shí)廣泛地使用了這個(gè)方法。

要設(shè)置這個(gè)模型的模式,請返回 manage.py 的 sql 命令。此時(shí)模式尚未確定。

清單 10. 使用 manage.py sql 命令查看數(shù)據(jù)庫模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
~/dev/djproject$ python manage.py sql jobs
 
BEGIN;
CREATE TABLE "jobs_job" (
    "id" integer NOT NULL PRIMARY KEY,
    "pub_date" date NOT NULL,
    "job_title" varchar(50) NOT NULL,
    "job_description" text NOT NULL,
    "location_id" integer NOT NULL
);
CREATE TABLE "jobs_location" (
    "id" integer NOT NULL PRIMARY KEY,
    "city" varchar(50) NOT NULL,
    "state" varchar(50) NULL,
    "country" varchar(50) NOT NULL
);
COMMIT;

為了初始化并安裝這個(gè)模型,請運(yùn)行數(shù)據(jù)庫命令 syncdb

~/dev/djproject$ python manage.py syncdb

注意,syncdb 命令要求我們創(chuàng)建一個(gè)超級(jí)用戶帳號(hào)。這是因?yàn)?django.contrib.auth 應(yīng)用程序(提供基本的用戶身份驗(yàn)證功能)默認(rèn)情況下是在 INSTALLED_APPS 設(shè)置中提供的。超級(jí)用戶名和密碼用來登錄將在下一節(jié)介紹的管理工具。記住,這是 Django 的超級(jí)用戶,而不是系統(tǒng)的超級(jí)用戶。

主站蜘蛛池模板: 日本又黄又爽又色的视频免费 | 亚洲免费一级视频 | 天天爽| 中文亚洲欧美 | 目韩一区二区三区系列片丶 | 亚洲国产精品自产在线播放 | 欧洲激情乱子伦 | 中文字幕第5页 | 性做久久久久久免费观看 | 福利在线免费视频 | 97在线视频99播放 | 国产精品午夜久久久久久99热 | 国产成人综合网亚洲欧美在线 | 伊人久久精品午夜 | 三级aa久久 | 亚洲欧美一区二区三区麻豆 | 粗大猛烈进出呻吟声的视频 | 国产美女久久久久久久久久久 | 操操操干干干 | 国产成人v片视频在线观看 国产成人爱片免费观看视频 | 97国产精品国产品国语字幕 | 免费在线不卡视频 | 久久99精品久久久久久臀蜜桃 | 国内一级特黄女人精品片 | 成人性a激情免费视频 | 国产精品人成福利视频 | 黄视频在线观看网站 | 日日碰日日摸日日澡视频播放 | 大陆60老妇xxxxhd | 日本一级片免费观看 | 国产成人拍精品视频网 | 奇米第四色网站 | 亚洲欧美一区二区三区在线 | 国产精品美女 | 97影院理论午夜论不卡 | 97dyy在线观看手机版 | 国产高清一区二区 | 91精品国产高清久久久久久io | 国内自拍小视频 | 手机观看毛片 | 四虎色播 |