需要的環境......(略)
使用pycharm社群版搭建項目(專業版有更強大功能):
- 打開terminal 執行指令: django-admin startproject first_project 如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9gTbZZnVIJWdsdUZwx2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2ITOyQzMygTM1EDMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在Django_server目錄下會建立一個first_project項目;
- 連接配接mysql資料庫:
如果未安裝mysqlclient驅動程式,需要執行指令:pip3 install mysqlclient;如遇報錯(紅一片的那種),需要先在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient下載下傳對應python版本的mysqlclient(我的是3.5版本)
- 下載下傳完成後,在該檔案所在目錄打開指令行執行視窗,執行指令:
- pip3 install mysqlclient‑1.4.4‑cp35‑cp35m‑win_amd64.whl (根據版本而定)
成功以後對,配置資料庫連接配接,打開settings.py檔案編寫代碼:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '資料庫名稱',
'USER': '資料庫使用者名',
'PASSWORD': '密碼',
'HOST': 'localhost',
'PORT': '3306',
}
}
執行指令:python manage.py shell 如圖:
測試資料庫配置是否成功:
>>> from django.db import connection
>>> cursor = connection.cursor()
如果沒有報錯,則配置成功。
- 建立app
首先切換到項目路徑下:cd first_project
執行指令:python manage.py startapp student
會在項目下建立一個student目錄。
- 建立模闆檔案的目錄:
在項目根目錄下建立一個templates目錄
- 啟動:python manage.py runserver (預設端口号8000)
啟動成功!
在浏覽器通路:127.0.0.1:8000 顯示:
- 添加web工程頁面
打開first_project/views.py輸入:
from django.http import HttpResponse
import datetime
def hello(request):
date = datetime.datetime.now() # 擷取目前時間
html = '<h2>Hello World!現在時間是:{}</h2>'.format(date)
return HttpResponse(html)
- url映射配置:
打開first_project/urls.py輸入:
from django.conf.urls import url
from django.contrib import admin
from first_project import views
urlpatterns = [
url('admin/', admin.site.urls),
url(r'^hello/$', views.hello),
]
在浏覽器通路:127.0.0.1:8000/hello
成功!
- 邏輯和頁面分離
在建立的templates目錄下建立一個student.html檔案編寫如下代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
<ul>
{% for student in students %}
<li>
id:{{student.id}},姓名:{{student.name}},age:{{student.age}}
</li>
{% endfor %}
</ul>
</body>
</html>
在Student/views.py 檔案下編輯代碼:
from django.shortcuts import render, render_to_response
# Create your views here.
def showStudents(request):
list = [{'id': 1, 'name': 'Jack'}, {'id': 2, 'name': 'Rose'}]
return render_to_response('student.html', {'students': list})
添加url映射:
from django.conf.urls import url
from django.contrib import admin
from first_project import views
from student import views as student_views
urlpatterns = [
url('admin/', admin.site.urls),
url(r'^hello/$', views.hello),
url(r'^showStudents/$', student_views.showStudents),
]
修改firstproject目錄下的setting.py配置檔案:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR + "/templates", ],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
此時,通路127.0.0.1:8000/showStudents顯示出如下資訊:
- 建立模型
打開student目錄下的models.py編寫代碼:
from django.db import models
# Create your models here.
class Student(models.Model):
name = models.CharField(max_length=20)
激活模型:
打開setting.py找到 INSTALLED_APPS 設定:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'student',
]
将建立的models同步到資料庫:(請使用mysql6以上版本)
在項目目錄下執行指令:
python manage.py makemigrations
python manage.py migrate
資料庫中建立如上表;
附錄:
字段
1、models.AutoField 自增列= int(11)
如果沒有的話,預設會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須将給列設定為主鍵 primary_key=True。
2、models.CharField 字元串字段
必須 max_length 參數
3.models.DateField 日期類型 date
對于參數,auto_now =True則每次更新都會更新這個時間;auto_now_add 則隻是第一次建立添加,之後的更新不再改變。
4.models.DateTimeField 日期類型 datetime
同DateField的參數
5.models.EmailField 字元串類型(正規表達式郵箱)=varchar
對字元串進行正規表達式
6.models.FloatField 浮點類型= double
7.models.IntegerField 整形
8.models.SmallIntegerField 數字
資料庫中的字段有:tinyint、smallint、int、bigint
9、models.TextField 字元串=longtext
10、models.TimeField 時間 HH:MM[:ss[.uuuuuu]]
11、models.URLField 字元串,位址正規表達式
12、models.BinaryField 二進制
13、models.ImageField圖檔
14、models.FilePathField檔案
參數
1、null=True
資料庫中字段是否可以為空
2、blank=True
django的Admin中添加資料時是否可允許空值
3、primary_key =False
主鍵,對AutoField設定主鍵後,就會代替原來的自增 id 列
4、auto_now 和 auto_now_add
auto_now 自動建立---無論添加或修改,都是目前操作的時間
auto_now_add 自動建立---永遠是建立時的時間
5、choices
GENDER_CHOICE =(
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default 預設值
8、verbose_name Admin中字段的顯示名稱
9、name|db_column 資料庫中的字段名稱
10、unique=True 不允許重複
11、db_index =True 資料庫索引
12、editable=True 在Admin裡是否可編輯
關注公衆号:“一起玩轉Python”擷取源碼:
掃碼關注