1 環境搭建及建立
1) 安裝Django
方法一:pip install django
方法二:Pycharm File——settings——Project——Python Interpreter——Python3.9 新增Django安裝,設定django的環境變數
3)建立Django專案
命令列至指定目錄下,django-admin startproject djangotest
4)啟動django 專案
python manage.py runserver
5)建立一個App
django-admin startapp webtest
6)關閉django
ctrl+C
2 資料庫連線
1)定義模型:在app中的 models.py 中建立class(一個class對應一張表);
from django.db import models # Create your models here. class Topic(models.Model): """使用者學習的主題""" text=models.CharField(max_length=200) #指明字元資料型別,長度200 date_added=models.DateTimeField(auto_now_add=True) # 建立新主題時,自動建立當前時間 def __str__(self): return self.text class Entry(models.Model): """學到的有關某個主題的具體知識""" topic=models.ForeignKey(Topic,on_delete=models.CASCADE) # 外來鍵 級聯刪除,即刪除Topic時刪除Entry text=models.TextField() date_added=models.DateTimeField(auto_now_add=True) class Meta: verbose_name_plural='entries' def __str__(self): return f"{self.text[:50]}..."
2)啟用模型:在project下得seetings.py 中的INSTALLED_APPS 中新增app名稱 (要將自己app名稱放在預設前,這樣能覆蓋預設應用程式行為)
3)連線自帶sqlite資料庫
- 命令列cd 至包含manage.py路徑下【每次修改資料後 都需要執行下面兩步遷移模型】
- 生成資料庫遷移檔案:python manage.py makemigrations appname
- 遷移修改資料庫:python manage.py migrate
- 使用Django的模型管理網站 維護資料
- 建立超級使用者
python manage.py createsuperuser
- 向管理網站註冊模型 app路徑下 admin.py
# Register your models here. from .models import Topic #Topic為models中建立的class名 admin.site.register(Topic) #讓Django通過管理網站管理模型 admin.site.register(Entry)
- 管理網站管理 維護使用者、使用者組以及model
啟動網站,訪問/admin/
- 命令列維護資料庫
- python manage.py shell
from appname.models import classname classname.objects.all() #查詢該表所有例項
- 遍歷
topics=Topic.objects.all() for topic in topics: print(topic.id,topic)
- 查詢
t=Topic.objects.get(id=1)
t.text
- 退出
exit()
3 配置路由和頁面
1) 對映URL
- 在project路徑urls.py引入from django.urls import path,include,然後再urlpatterns中新增:
path('',include('webtest.urls'))
- 在app路徑下建立urls.py 新增以下程式碼
"""定義webtest的URL模式""" from django.urls import path from . import views # app_name='webtest' # 區別其他app同名檔案,這裡有一個問題就是在users中必須存在,在webtest中必須註釋掉 urlpatterns=[ # 主頁 path('',views.index,name='index') #第一引數 路由;第二個引數 views.py中對應函式;第三個引數 指定名稱 ]
2)搭建view(也就是MVC中的controller)
from django.shortcuts import render # 根據檢視提供的資料渲染響應 # Create your views here. def index(request): # 網站請求查詢路由到index,然後將request傳遞給函式 """"學習筆記主頁""" return render(request,''index.html')
3)在app路徑下建立templates建立index.html
4 Django響應的前後端互動
-
- 就是通過{% %}程式碼塊展示後端資料,具體看 djangotest 專案程式碼
- Django中的前後端互動式後臺強制解析,然後主要就是登入檢測,django.contrib.auth.urls需要在users的urls.py views.py(@ =login_required) 以及在settings.py設定被登入攔截找首頁(LOGIN_URL='users:login') # users:login是url配置的路由路徑
5 設定應用程式樣式
-
- 安裝django-bootstrap4
pip install django-bootstrap4
- 專案引用
settings.py 的INSTALLED_APPS 中 新增 'bootstrap4',
- 在html中直接加class,在head中加入
{% load bootstrap4 %} {% bootstrap_css %} {% bootstrap_javascript jquery='full' %}
- 表單頁 程式碼如下
{% block content %} {% if form.errors %} <p>Your username and password didn't match.Please try again.</p> {% endif %} {% block page_header %} <h2>Log in to your account.</h2> {% endblock page_header %} <form method="post" action="{% url 'users:login' %}" class="form"> {% csrf_token %} {% bootstrap_form form %} {% buttons %} <button name="submit" class="btn btn-primary">Log in</button> {% endbuttons %} <input type="hidden" name="next" value="{% url 'index' %}" /> </form> {% endblock content %}
- 不加樣式表單頁 程式碼如下
{% block content %} <p><a href="{% url 'index' %}">index</a></p> <p>Add a new topic:</p> <form action="{% url 'new_topic' %}" method="post"> {% csrf_token %} {{ form.as_p }} <button name="submit">Add topic</button> </form> {% endblock content %}
6 Django+Mysql+Vue
-
- 看到網上那麼多教程,我相信Django+Mysql+Vue的過程應該不是那麼難了吧