首頁>技術>

個人覺得,從簡單的專案入手,這樣學起來會很快。

在專案中,發現問題就說問題。

網上有很多python的基礎教程,畢竟是基礎,所以大多都是免費的,大家可以看看,有一點基礎應該都可以看得懂。跟著一起邊做簡單的專案,邊學習了

首先,開啟pycharm建立名為:stu_test的專案,如圖:

點選+Create Nwe Project

建立Django專案

左側選中Django,這裡我的專案路徑:E:\\django_test\\stu_test (stu_test是我的專案名稱)

選擇python直譯器,這裡我用本機的虛擬環境,選擇第二個選項。第一個選項是建立虛擬環境。

最下面,填寫APP的名稱,這裡用app01(只是學習階段,名字隨便起的,本人詞量太少了,大家海涵)

建立完成,第一時間先設定(stu_test/stu_test/settings.py)

由於是pycharm建立的,app自動就幫我們新增好了,模型也配置好了,我們可以先不管

資料庫我們就先用sqlite吧,這是Django自帶的,我們現在只是學習,暫時也夠用了。

就先拉到最下面,修改下面兩項,一個是語言環境,一個是時區。

from django.db import models# 新增的表都需要繼承自models.Model# 建立名為StuClass的班級表class StuClass(models.Model):#models.CharField()欄位型別為char    # verbose_name="班級" 設定欄位名為班級    # max_length=10 長度為10    # null=False 不可以為空    # unique=True不允許重複    class_stu = models.CharField(verbose_name="班級", max_length=10, null=False, unique=True)# auto_now_add=True 新增的時間    # 增加下面兩個欄位,方便到時候維護統計    add_time = models.DateTimeField(verbose_name="新增時間", auto_now_add=True)# auto_now=True  當前時間    updata_time = models.DateTimeField(verbose_name="新增時間", auto_now=True)# 建立名為Students的學生表class Students(models.Model):    name = models.CharField(verbose_name="姓名", max_length=6, null=False)    age = models.IntegerField(verbose_name="年齡", null=False)# 構造一個元組    genders = (        (0,"男"),        (1,"女"),    )    # choices的意思是選擇,choices=genders在genders中選擇    gender = models.IntegerField(verbose_name="性別", choices=genders)    add_time = models.DateTimeField(verbose_name="新增時間", auto_now_add=True)    updata_time = models.DateTimeField(verbose_name="新增時間", auto_now=True)# 設定外來鍵,與StuClass(班級關聯起來)    # on_delete=models.CASCADE 的意思就是關聯刪除    # 所屬的班級刪除了,相應的學生也會刪除forkey = models.ForeignKey(to=StuClass, on_delete=models.CASCADE)

接下來就要新增欄位了,我們先做個簡單分析,構建一個結構,如圖:(用記事本寫的,有點渣,大家有好用的工具可以推薦下)

通過上圖可以發現,欄位中要包含班級,姓名,性別,年齡這幾個欄位。

其中每個班級中都有姓名,性別,年齡。(文字說不清了,最好的表達形式就是程式碼,我們上程式碼):

位置:stu_test/app1/models.py

python manage.py makemigrations

欄位建立完畢,把欄位新增到管理後臺(Django自帶的,不用自己寫,是不是很方便?)

位置:stu_test/app1/admin.py (一看知道admin是管理員的意思)

from django.contrib import admin# 匯入models,就是我們剛寫的欄位類,同級目錄我們用.models,星號代表匯入全部from .models import *  # 加入我們寫的兩個表# admin.site.register 這一串死記硬背吧,發現這個在pycharm中沒有提示admin.site.register(StuClass)admin.site.register(Students)

接下我們遷移資料 開啟Terminal(在pycharm的左下角)如圖

這裡我們要注意方框裡面,Djang_env 是使用的虛擬環境

E:\\django_test\\stu_test 是當前路徑

輸入下面程式碼,遷移檔案

python manage.py migrate

提示如下

遷移檔案生成了,接下來開始遷移

繼續輸入如下程式碼

python manage.py createsuperuser

提示如下:

資料已經遷移完畢了。

我們要通過管理後臺錄入學生資訊,那麼就要建立管理員賬戶。輸入下面程式碼:

python manage.py createsuperuser

根據提示,我們一次填入使用者名稱,郵箱,密碼如圖:

我輸入的密碼是123456,說密碼太常見了,要不要使用。

這裡輸入y 然後回車,就用這個密碼。管理員賬戶就建立成功了。

接下來我們執行伺服器,繼續輸入如下程式碼:

python manage.py runserver

提示如圖:

這裡的http://127.0.0.1:8000/ 其中127.0.0.1代表我們本機的,埠為8000。

伺服器就跑起來了,接下來開啟http://127.0.0.1:8000/admin(注意:地址裡面的admin不是我們管理員使用者名稱,是路由裡面的地址,位置:stu_test/stu_test/urls.py中預設的,我們先不修改)

開啟後如下:

輸入我們的使用者名稱密碼,我這裡是admin和123456

我們會看到下圖:

這裡可以看到之前建立的兩個表,

看著是不是哪裡有點彆扭,兩個表的名字英文的看起來很不舒服?

我們開啟之前的models.py,修改程式碼如下

from django.db import modelsclass StuClass(models.Model):    class_stu = models.CharField(verbose_name="班級", max_length=10, null=False, unique=True)    add_time = models.DateTimeField(verbose_name="新增時間", auto_now_add=True)    updata_time = models.DateTimeField(verbose_name="新增時間", auto_now=True)    class Meta:        verbose_name = "班級"        verbose_name_plural = verbose_nameclass Students(models.Model):    name = models.CharField(verbose_name="姓名", max_length=6, null=False)    age = models.IntegerField(verbose_name="年齡", null=False)    genders = (        (0,"男"),        (1,"女"),    )    gender = models.IntegerField(verbose_name="性別", choices=genders)    add_time = models.DateTimeField(verbose_name="新增時間", auto_now_add=True)    updata_time = models.DateTimeField(verbose_name="新增時間", auto_now=True)forkey = models.ForeignKey(to=StuClass, on_delete=models.CASCADE)    class Meta:    # 把表的名字改為學生        verbose_name = "學生"# 這句是複數的意思,我們都知道英語裡面,複數大多數是在單詞後面加s,如果我們不寫這句          # 到時候顯示的名字就是 學生s了        verbose_name_plural = verbose_name

儲存一下,伺服器會自動重啟,我們重新整理下剛才的頁面:

是不是看著就方便許多呢?

接下來我們新增資料,先新增幾個班級,比如1班,2班,3班

這裡就不細說了,都是中文,相信都會添加了。

新增完成後,我們進入班級裡面,如圖:

這都是什麼,看起來很費勁。我們再開啟models.py檔案,修改如下程式碼:

from django.db import modelsclass StuClass(models.Model):    class_stu = models.CharField(verbose_name="班級", max_length=10, null=False, unique=True)    add_time = models.DateTimeField(verbose_name="新增時間", auto_now_add=True)    updata_time = models.DateTimeField(verbose_name="新增時間", auto_now=True)    class Meta:        verbose_name = "班級"        verbose_name_plural = verbose_name    def __str__(self):        return self.class_stuclass Students(models.Model):    name = models.CharField(verbose_name="姓名", max_length=6, null=False)    age = models.IntegerField(verbose_name="年齡", null=False)    genders = (        (0,"男"),        (1,"女"),    )    gender = models.IntegerField(verbose_name="性別", choices=genders)    add_time = models.DateTimeField(verbose_name="新增時間", auto_now_add=True)    updata_time = models.DateTimeField(verbose_name="新增時間", auto_now=True)    forkey = models.ForeignKey(to=StuClass, on_delete=models.CASCADE)    class Meta:        verbose_name = "學生"        verbose_name_plural = verbose_name    def __str__(self):        return self.name

我們可以看到

# 班級表中多了:def __str__(self):# self.class_stu        # self代表當前類        # self.class_stu就是當前類下的class_stu欄位        # 不難發現,class_stu這個欄位使我們定義的班級的名字        return self.class_stu# 學生表中多了:# 為什麼要寫這裡呢,因為到時候新增學生的時候,也會是這樣子# 你們可以先不寫,到時候新增學生的時候再寫也行# 這裡直接加上,是為了減少一些沒必要的複製def __str__(self):# 與班級同理        return self.name

儲存一下,我們再重新整理下頁面看看,如圖

這樣是不是就不彆扭了,def __str__(self): 這裡我們硬記下來就行

接下來我們新增學生。舉一反三,應該學生大家也會添加了。現在是學習嘛,沒必要加那麼多,我大概加了一些,如圖:

這樣,我們就把資料在後臺錄入完畢了。此篇到此結束,下一篇我們來講如何配置路由,建立頁面,以及增刪改查,大家可以先自己動手敲一遍,增加一些印象,這樣學起來也會快很多。

寫了一下午了,該吃晚飯了,一天都沒吃,餓的不行,大家也要多注意身體呀。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Zookeeper、kafka和redis 呼叫關係解析