Python 創建一個Django項目


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM