django相關知識

 pip install Django  //安裝django框架

Django項目就是一個機遇Django的web應用

Django應用就是一個可重用的python軟件包,不可以直接運行。一個應用可以被多個Django項目使用

一個Django項目包含一組配置和若干個Django應用

 

創建一個Django項目

django-admin startproject django_t1 //創建一個django項目
cd django_t1 //進入項目並啓動
python manage.py runserver

 

創建一個xxx的Django應用

python manage.py startapp  xxx   

 

django視圖學習

1)python manage.py startapp  abc   //在django_t1項目中創建一個abc的應用

打開abc應用的views.py視圖文件並輸入如下內容

from django.shortcuts import render
from django.http import HttpResponse

def hello(request):
    return HttpResponse("hello world")

2)配置應用層路由

在abc應用下面創建一個urls.py應用層次的路由文件,並輸入如下代碼:

from django.urls import path,include
import blog.views

urlpatterns=[
    path('hello',blog.views.hello)
]

3)配置項目層路由

打開項目路由urls.py,找到urlpatterns增加如下代碼:

path('blog/', include('blog.urls')),

4)打開項目配置文件settings.py,找到INSTALLED_APPS並追加如下代碼:

'blog.apps.BlogConfig',

 

模型層學習

1)打開abc應用裏的models.py並輸入如下代碼:
from django.db import models

class Article(models.Model):
    #文章ID   設置主鍵並自增
    article_id=models.AutoField(primary_key=True)
    #文章標題
    title=models.TextField()
    #文章摘要
    brief_content=models.TextField()
    #文章內容
    content=models.TextField()
    #文章發佈日期  如果沒有指定這個內容則自動插入當前日期
    publish_date=models.DateTimeField(auto_now=True)

2)執行如下兩條命令

python manage.py makemigrations    //生成遷移文件

python manage.py migrate  //將生成的遷移文件運行並導入到數據庫中

常用字段類型說明:

字段類型
AutoField:自動增長的IntegerField,通常不用指定,不指定時Django會自動創建屬性名爲id的自動增長屬性。
BooleanField:布爾字段,值爲True或False。
NullBooleanField:支持Null、True、False三種值。
CharField(max_length=字符長度):字符串。TextField:大文本字段,一般超過4000個字符時使用。
-- 參數max_length表示最大字符個數。
IntegerField:整數。
FloatField:浮點數
DecimalField(max_digits=None, decimal_places=None):十進制浮點數。
-- 參數max_digits表示總位數。
-- 參數decimal_places表示小數位數。
DateField[auto_now=False, auto_now_add=False]):日期。
-- 參數auto_now表示每次保存對象時,自動設置該字段爲當前時間,用於"最後一次修改"的時間戳,它總是使用當前日期,默認爲false。
-- 參數auto_now_add表示當對象第一次被創建時自動設置當前時間,用於創建的時間戳,它總是使用當前日期,默認爲false。
-- 參數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤。
TimeField:時間,參數同DateField。
DateTimeField:日期時間,參數同DateField。
FileField:上傳文件字段。
ImageField:繼承於FileField,對上傳的內容進行校驗,確保是有效的圖片。
在實際開發中不會真的把文件或者圖片存到數據庫中,而是將文件或者圖片放在指定的目錄,數據庫中記錄文件的具體路徑。

 

Django shell

python shell 用於交互式的python編程

Django shell 集成Django項目的環境使用一些命令,一般用於臨時小範圍測試。但總是要寫代碼很繁瑣一般用django admin代替。

例如:進入Django shell並向某表中插入數據

python manage.py shell   //進入Django shell模式,輸入如下代碼:

    from blog.models import Article
    a= Article()
    a.title='this is title'
    a.brief_content='aaaaaaaaaa'
    a.content='bbbbbbbbbb'

    print(a)  #可以自己打印看戲下
    a.save()  #保存到數據庫裏面

    #查詢上面插入是否成功

    lists=Artile.objects.all()
    getone=lists[0]
    print(getone.title)

 

django admin模板

後臺管理工具,讀取定義的模型數據,提供了強大的管理頁面。比django shell寫代碼操作方便很多

 

使用django admin模塊管理我們創建的Article模型:

1)python manage.py createsuperuser //創建一個管理員賬戶,輸入賬號,郵箱(可不寫),密碼

2)啓動項目並訪問admin模塊

python manage.py runserver

在瀏覽器輸入http://127.0.0.1:8000/admin/並輸入賬號密碼

如何將我們上面創建的Article模型導入到django admin後臺以便我們管理呢?

3)打開abc應用中的admin.py並輸入如下代碼:

from django.contrib import admin

# Register your models here.

from .models import Article
admin.site.register(Article)

4)完成以上步驟在前臺http://127.0.0.1:8000/admin/刷新即可管理我們的Article了

5)默認我們定義的模型的數據在admin後臺列表顯示是這樣的,不能直觀的看出來:

Artile object (2)
Artile object (1)

解決這個問題我們修改abc的模型models.py追加如下代碼:

def __str__(self):
    return self.title

 

 

 

 

 

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