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的過程應該不是那么難了吧