Django-入門操作詳解

利用Django實現投票系統

聲明:我是跟着Github項目學習的,這裏的記錄僅僅是幫助自己理解。
這篇文章的主要目的是利用Django連接MySQL數據庫,並利用Django中自帶的Web前端處理器對數據庫進行簡單增刪改查操作,首先在進行實驗之前請確保如下環境配置正確:Python3.5以上、MySQL安裝正確。

創建Python虛擬環境

首先我們在Python中先創建一個虛擬環境以便進行的操作不會影響到原始配置環境,創建虛擬環境的過程如下:

  1. 打開命令行程序(在電腦中輸入CMD即可)進入到你想保存的項目目錄中
  2. 創建vote文件夾mkdir vote
  3. 在命令行中輸入命令python -m venv venv,第一個venv是告訴Python我要創建一個虛擬環境啦,第二個是虛擬環境的名稱(想取啥取啥嘍)
  4. cd進入虛擬環境中的Scripts目錄:cd venv/Scripts
  5. 輸入命令activate激活虛擬環境,此時命令行前面應該有虛擬環境標誌(venv) E:\pythoncode\
  6. 更新pippython -m pip install -U pip,我輸入pip install -U pip 會報錯Fatal error in launcher: Unable to create process using '"'查了後說是電腦裏安裝了多個Python環境的原因。。。emmm但是我電腦裏貌似就一個python環境,如果你知道爲啥的話給我留言呀~
  7. 安裝Djangopip install django
  8. 創建django項目django-admin startproject vote最後是創建項目的名稱,這裏用的是vote
  9. 在項目vote下創建vote_app應用,一個Django項目內可以創建多個應用:python manage.py startapp vote_app
    至此,Python的虛擬環境安裝完畢~~我們在命令行內鍵入python manage.py runserver可以出現以下界面:
    在這裏插入圖片描述

配置MySQL

  1. 打開setting.py文件(在剛剛創建的django項目vote下的vote目錄內),修改如下代碼,將剛剛創建好的vote_app加入django的應用下。
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'vote_app',
]
  1. 修改setting.py中的數據庫配置,注意這裏的驅動要改爲django中集成好的mysql驅動,而且你要首先確保你的mysql中有名爲vote的數據庫,沒有的話可以先用create命令創建。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'vote',
        'HOST': '172.31.43.***',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '*****',
    }
}
  1. 安裝pymysql:pip install pymysql
  2. 打開項目目錄下的__init__.py,寫入如下代碼:
import pymysql
pymysql.install_as_MySQLdb()
  1. 在命令行內鍵入python manage.py migrate
  2. 之後打開model.py開始定義數據模型
from django.db import models

# Create your models here.
class Subject(models.Model):
    no = models.IntegerField(primary_key=True,db_column='sno',verbose_name='學科編號')
    name = models.CharField(max_length=20,db_column='sname',verbose_name='學科名稱')
    intro = models.CharField(max_length=100,null=True,db_column='sintro',verbose_name='學科介紹')
    create_date = models.DateField(db_column='create_date',verbose_name='成立日期')
    is_hot = models.BooleanField(db_column='is_hot',verbose_name='是否熱門')
    emp_rate = models.DecimalField(max_digits=7,decimal_places=2,db_column='emp_rate',verbose_name='就業率')
    def __str__(self):
        return self.name
    class Meta:
        db_table = 'tb_subject'
        verbose_name = '學科'
        verbose_name_plural = '學科'

class Teacher(models.Model):
    no = models.IntegerField(primary_key=True,db_column='tno',verbose_name='老師編號')
    name = models.CharField(max_length=20,db_column='tname',verbose_name='姓名')
    intro = models.CharField(max_length=100,null=True,db_column='tintro',verbose_name='自我介紹')
    job_date = models.DateField(db_column='job_date',verbose_name='入職日期')
    good_count = models.IntegerField(db_column='good_count',verbose_name='好評數')
    bad_count = models.IntegerField(db_column='bad_count', verbose_name='差評數')
    sub_no = models.ForeignKey(Subject,db_column='sub_no',on_delete=models.PROTECT,verbose_name='所屬學科')
    def __str__(self):
        return self.name
    class Meta:
        db_table = 'tb_teacher'
        verbose_name = '老師'
        verbose_name_plural = '老師'

7.在命令行輸入python manage.py makemigrations vote_app生成遷移文件
8.命令行輸入python manage.py migrate執行遷移文件
如果這部分的操作都沒有報錯的話則恭喜你~連接MySQL的過程就圓滿完成啦!

利用Django來管理模型

1.創建超級用戶python manage.py createsuperuser按提示依次輸入即可
2.在vote_app應用內修改admin.py文件如下,註冊模型。

from django.contrib import admin
from vote_app.models import Subject,Teacher
# Register your models here.
class SubjectAdmin(admin.ModelAdmin):
    list_display = ('no','name','intro','create_date','is_hot','emp_rate')
    ordering = ('no',)
class TeacherAdmin(admin.ModelAdmin):
    list_display = ('no','name','intro','job_date','good_count','bad_count','sub_no')
    ordering = ('sub_no','no',)

admin.site.register(Subject,SubjectAdmin)
admin.site.register(Teacher,TeacherAdmin)

3.在瀏覽器內輸入(http://127.0.0.1:8000/admin/)後輸入剛剛註冊的用戶名和密碼進入如下界面:
在這裏插入圖片描述至此,我們可以在該頁面上對模型進行增刪改查操作。

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