文章寫的很好很詳細,轉載自https://blog.csdn.net/yybk426/article/details/75042833
首先要創建Django項目,必須自己電腦安裝了Django,如果沒安裝,請查看我的之前的博客:
http://blog.csdn.net/yybk426/article/details/74279398
1.創建Django項目
1.點擊idea左上角的File,然後點擊New,之後點擊Project。
2.這樣的一個Django項目就創建了
2.配置項目
1.點擊idea右上角,如下圖(這一步是臨時的,不寫第二步的話,如果把項目考到別的idea上運行,得重新配置):
然後會出來如下圖的界面:
2.接下來死點擊idea左上角File中的Projaect Structure(這一步是永久的,就算把項目考到別的idea上運行,項目也能正常運行)
3.創建一個APP
1.點擊idea上方Tools中的Run manage.py Task 會出現一個命令窗口(第二個步驟配置沒問題了,Tools中才會有Run manage.py Task這個)
2.輸入startapp student,回車就會創建一個app(student是app的名字,你可以叫別的)
4.一個超級簡單的頁面跳轉(通過HttpResponse 來把內容顯示到網頁上)
1.在student中編輯views.py,添加如下代碼:
from django.shortcuts import render
#導入HttpResponse,用來向網頁返回內容的,像print一樣,不過HttpResponse是把內容顯示到網頁上。
from django.http import HttpResponse
# Create your views here.
def index(request):#定義一個函數,第一個參數必須是request
return HttpResponse("Hello, world. Hello,python.")#返回HttpResonse對象,最終將這行字符顯示在頁面上
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2.在student中創建ursl.py(右擊student–>NEW-Python File),添加如下代碼:
from django.conf.urls import url
from . import views#導入views
urlpatterns = [
#aaa$代表以aaa結束,views.index是關聯對應views.py中的一個函數
url(r'^aaa$', views.index, name='index'),
]
#本步驟目前做這個可以寫,可以不寫,不過之後要是對student做具體操作(比如:增刪改等)必須寫,方便管理項目。
#如果不打算寫,可以直接做完第1步,直接第2步
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
3.在School1中的urls.py中添加如下代碼:
from django.conf.urls import url
from django.contrib import admin
from student import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
#添加這一句,student/代表跳轉到student APP中,views.index是關聯對應views.py中的一個函數
url(r'^student/', views.index, name='index'),
]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
4.這時候運行Django,去瀏覽器網址欄輸入http://127.0.0.1:8000/student/aaa:
如果沒寫第二步,輸入http://127.0.0.1:8000/student
5.接下來使用渲染模板的方法來顯示內容
第四步驟是用HttpResponse 來把內容顯示到網頁上,本步驟是使用渲染模板的方法來顯示內容
注意::寫本步驟之前把第四步驟寫的全部先註釋掉,方便理解!!!
1.在student中views中添加如下代碼:
from django.shortcuts import render
def index(resquest):#定義一個函數,第一個參數必須是request
ctx={} #定義一個名爲ctx的空字典
ctx["msg"] = "World" #以鍵值對方式添加一條數據到字典中
return render(resquest,'hello.html',ctx)#把字典作爲參數返回
- 1
- 2
- 3
- 4
- 5
2.在student中urls.py(沒有請創建urls.py)中添加如下代碼:
from django.conf.urls import url
from . import views#導入views
urlpatterns = [
#hello$代表以hello結束,views.index是關聯對應views.py中的一個函數
url(r'^hello$', views.index, name='index'),
]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.在School1中修改settings.py文件,裏面加入一條BASE_DIR+’/views’,在什麼地方加如下圖:
4.在student下創建一個views文件夾(右擊student–>NEW–>Directory),進入views中,創建一個hello.html(右擊student–>NEW–>Html File):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>hello,{{msg}}</h1>{#取得字典值爲msg的vlues,並顯示出來#}
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
5.在School1中的urls.py中添加
from django.conf.urls import url,include
from django.contrib import admin
from student import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^student/',include('student.urls',namespace="student"))
]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
6.運行項目School1,去瀏覽器網址欄輸入:http://127.0.0.1:8000/student/hello:
7.最後整個項目是這樣的
6.創建數據庫,初步生成數據庫表(本步驟基於步驟二)
1.首先在School中的settings.py中修改代碼:
INSTALLED_APPS = [
'django.contrib.admin',#管理網站
'django.contrib.auth',#認證模塊
'django.contrib.contenttypes',#內部框架
'django.contrib.sessions',#會話管理
'django.contrib.messages',#消息框架
'django.contrib.staticfiles',#映射的靜態資源
'student.apps.StudentConfig'#加載到全局中
]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#這麼選擇mysql數據庫
'NAME': 'School1',#數據庫的名字
'USER': 'root',#mysql數據庫的用戶名
'PASSWORD': 'root',#mysql數據庫的密碼
'HOST': 'localhost',#mysql數據庫的主機名
'PORT': '3306'#mysql數據庫的端口號(這個可寫可不寫)
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2.在student中models.py中加入代碼:
from django.db import models
# Create your models here.
class student(models.Model):
#學生姓名長度爲50,不能爲空,以下的字段以此類推,但是學生的愛好可以爲空
name=models.CharField('姓名',max_length=50,null=False)#'姓名'是別名,以下的以此類推
sex=models.CharField('性別',max_length=2,null=False)
born=models.DateField('生日',null=False)
city=models.CharField('城市',max_length=100,null=False)
likes=models.CharField('愛好',max_length=100)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
4.打開mysql數據庫,創建一個名爲School1的數據庫
**
注意:數據庫的名字必須和第1步的settings.py中設置的數據庫名字一樣!!!
**
5.打開一個全新的運行窗口,輸入pip list 查看安裝什麼東西
6.輸入命令pip install mysqldb(安裝這個會報錯但是沒關係,不用管)接着輸入pip install MySQLclient就ok了
7.點擊idea上方Tools中的Run manage.py Task,會出來一個命令窗口,然後輸入命令makemigrations student:
8.之後運行sqlmigrate student 0001,會生成sql語句(這行代碼是查看的,不是必須運行的)
8.最後運行migrate這個就把sql語句運行 最終在mysql數據庫中初步生成表
9.最後數據庫會出現如下圖這些表:
7.創建一個超級管理員,並登錄
1.首先在Tools裏面打開run manage.py Task(快捷鍵是ctrl+Alt+r),然後會出來一個新的命令窗口
2.在命令窗口輸入createsuperuser,然後會然你輸入管理員的用戶名,接着會讓你輸入郵箱地址,在之後會讓你輸入密碼
3.這時候超級管理員就創建好了,運行項目(http://127.0.0.1:8000/admin),發現登錄窗口是英文的,對於英文不好的很難受,所以在全局setting.py中修改配置後就漢化了
這時候刷新一下頁面就發現漢化了
8.把student app添加到Django項目中,並添加數據
1.在student app中添加admin.site.register(models.student)
這時候在頁面就會看到student app加入進來了:
把student修改成中文的,在student app下的models.py文件中加入如下代碼:
from django.db import models
# Create your models here.
class student(models.Model):
#加入一下三行代碼
class Meta:
#設置student的別名
verbose_name='學生'
verbose_name_plural='學生'
#學生姓名長度爲50,不能爲空,以下的字段以此類推,但是學生的愛好可以爲空
name=models.CharField('姓名',max_length=50,null=False)#'姓名'是name的別名,以下的以此類推
sex=models.CharField('性別',max_length=2,null=False)
born=models.DateField('生日',null=False)
city=models.CharField('城市',max_length=100,null=False)
likes=models.CharField('愛好',max_length=100)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
然後重新運行項目,在頁面就會看到student變成中文的‘學生’了
2.接下來,點擊增加,增加幾個學生,並查看數據庫
修改student app下的admin.py文件:
from django.contrib import admin
from . import models
# Register your models here.
#繼承ModelAdmin類
class student_admin(admin.ModelAdmin):
#list_display是一個數組
list_display=['name','sex','born','city','likes']
admin.site.register(models.student,student_admin)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
在重新運行項目,刷新頁面就會看到:
下面查看數據庫就會發現數據中也會剛纔添加的信息: