Python Django框架學習(一)

本文章只適用於初學者,大神請跳過

簡介:

Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的,即是CMS(內容管理系統)軟件。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。

Django環境準備

1.首先必須安裝python(不解釋)

2.通過pip安裝Django

pip install django
# 如果需要安裝特定版本
pip install django==版本號

將django配置進環境變量path中,在path中增加python安裝路徑下的scripts/django/

創建一個Django項目

在需要創建項目的目錄下運行cmd,並輸入

django-admin startproject 項目名

創建一個應用

python manage.py startapp 應用名

啓動服務

python manage.py runserver 

# 默認地址http://127.0.0.1:8000

注意:一個項目可以包含多個應用

創建Model

在應用models.py文件中新建一個類,繼承models.Model

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf8")

from django.db import models

# Create your models here.


class BookInfo(models.Model):
    book_name = models.CharField(max_length=20)
    create_time = models.DateTimeField()


class HeroInfo(models.Model):
    hero_name = models.CharField(max_length=20)
    hero_content = models.CharField(max_length=120)
    sex = models.BooleanField(default=True)
    book_relex = models.ForeignKey('BookInfo')

根據創建的模型生成對應的數據庫表

  • 首先創建遷移文件
python manage.py makemigrations
  • 執行遷移生成表
python manage.py migrate

通過相應的類操作表(django默認數據庫是sqlite3)

# 進入django終端
python manage.py shell
# 導入相應的類
from 應用名.models import 類名 #假如類名爲HeroInfo
from first_django.models import BookInfo, HeroInfo
#創建對象
b = BookInfo()
#添加數據
b.book_name = '天龍八部'
b.create_time = '1990/01/01'
#保存數據
b.save()
h = HeroInfo()
h.hero_name = '段譽'
h.hero_content = '六脈神劍'
h.sex = False
h.book_relex = b
b.save()

後臺管理頁面

本地化

修改語言和修改時區

進入項目的setting.py文件

LANGUAGE_CODE = 'zh-hans' #語言是漢語
TIME_ZONE = 'Asia/Shanghai' #時區是上海,沒有北京

創建管理員

python manage.py createsuperuser

註冊模型類

在應用下面的admin.py文件中進行註冊

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin

# Register your models here.
from first_app.models import BookInfo, HeroInfo


admin.site.register(BookInfo, BookInfoAdmin)

admin.site.register(HeroInfo, HeroInfoAdmin)

這樣啓動項目

python manage.py runserver

# 如果提示端口號被佔用可以這樣啓動 python manage.py runserver 指定端口號

python manage.py runserver 8888

訪問localhost:8000/admin  就可以查看管理界面了

輸入創建管理員時的用戶名和密碼

這時就可以看見上面創建的兩個模型

拓展

點擊其中一個模型

我們看見只是顯示了一個BookInfo object 不是特別直觀

這裏我們可以通過自定義管理界面來改變模型的展現形式

1.修改模型文件

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf8")

from django.db import models

# Create your models here.


class BookInfo(models.Model):
    book_name = models.CharField(max_length=20)
    create_time = models.DateTimeField()

    def __str__(self):
        return self.book_name


class HeroInfo(models.Model):
    hero_name = models.CharField(max_length=20)
    hero_content = models.CharField(max_length=120)
    sex = models.BooleanField(default=True)
    book_relex = models.ForeignKey('BookInfo')

    def __str__(self):
        return self.hero_name

這樣,我們的模型在管理界面就會顯示出來書的名稱,比較直觀了

2.修改應用目錄下的admin.py文件

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin

# Register your models here.
from first_app.models import BookInfo, HeroInfo


# 自定義模型管理類
class BookInfoAdmin(admin.ModelAdmin):
# list_display中的字段會直接顯示在管理界面
    list_display = ['id', 'book_name', 'create_time']


class HeroInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'hero_name', 'sex', 'hero_content']

# 當我們自定義了管理類,在註冊的時候我們必須要增加一個參數,將管理類傳進去
admin.site.register(BookInfo, BookInfoAdmin)

admin.site.register(HeroInfo, HeroInfoAdmin)

這時,管理界面顯示如圖

小白學習筆記,不喜勿噴謝謝,請各位大神多多指教

如有不足請指出

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章