日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

django的简单学习

發布時間:2024/1/21 windows 33 coder
生活随笔 收集整理的這篇文章主要介紹了 django的简单学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

以下項目實現基于一個投票系統

安裝django

命令行安裝

pip install django

pycharm安裝

pycharm的setting里找到這個,點擊+號,搜索django

點擊Install Package

新建一個django項目

命令行創建項目(windows)

在pip安裝完之后,在python的Scripts目錄里有 django-admin.exe

:::tips
django-admin.exe startproject [項目名稱]
:::

目錄結構是這樣

命令行創建項目(linux)

python3 -m django startproject my_django[項目名稱] 或者 django-admin startproject my_django[項目名稱]
目錄結構是這樣

pycharm創建項目

安裝完django后,new project可以看到django

建好之后的django是這樣的目錄結構

pycharm創建的django項目多了一個templates目錄

目錄結構分析

  • manage.py

一個類似于django-admin.exe的管理腳本,可以對你建立的django項目進行管理,每次新建一個django項目都會生成這個文件

  • init.py

一個空文件,標識這個文件夾是一個包

  • asgi.py

作為你的項目的運行在 ASGI 兼容的 Web 服務器上的入口,處理網絡請求的文件

  • wsgi.py

作為你的項目的運行在 WSGI 兼容的Web服務器上的入口,也是處理網絡請求的文件

  • settings.py

django項目的配置文件

  • urls.py

Django 項目的 URL 聲明,就像你網站的“目錄”,其實就是常說的路由配置

  • templates

模板文件放置的文件夾,html等等文件

啟動web服務

python3 manage.py runserver

創建應用app

一個項目可以有很多應用,一個應用也可以被很多項目使用,應用app相當于一個功能模塊
python3 manage.py startapp app1
目錄結構如下

  • admin.py

django默認提供的后臺管理,不需要修改

  • apps.py

一些關于創建的app的信息,不需要修改

  • models.py

數據庫模型文件

  • views.py

視圖文件,對web頁面進行設計

  • migrations

數據庫遷移文件,數據的每一次變更,這里就會記錄

  • tests.py

測試文件

注冊app

創建app后,要使用得先注冊,找到settings.py,寫入最后一行

這樣就成功注冊了app1這個應用,開始對app1進行開發

對app進行開發

先編寫視圖文件views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("Hello World!")

一個經典的Hello world,這里是對http請求進行了處理,response返回一個Hello World!
在app1/ ,創建一個urls.py,默認是沒有這個文件的,編寫代碼,把之前views編寫的index函數給包含進去

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name="index")
]

在my_django/urls.py繼續編寫,包含app1.urls

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app1/', include('app1.urls'))
]

啟動web服務
python3 manage.py runserver,訪問app1

數據庫配置

默認數據庫配置

django默認使用的是sqlite數據庫,還是settings.py文件里看

如果想使用其它數據庫,可以在這里進行修改

進行數據遷移應用

python3 manage.py migrate 對INSTALLED_APPS里注冊的app進行一個遷移應用,每當注冊了的app的數據發生遷移,都會進行一個記錄

創建數據庫模型

在這個投票應用中,需要創建兩個模型:問題 Question 和選項 Choice。Question 模型包括問題描述和發布時間。Choice 模型有兩個字段,選項描述和當前得票數。每個選項屬于一個問題
編寫app1/models.py

from django.db import models

# Create your models here.
class Question(models.Model):
    question_text = models.CharField(max_length=200) # 創建一個字符串字段
    pub_date = models.DateTimeField("date published") # 創建一個date字段
    
class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE) # 標識為外鍵
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0) # 創建一個數字型字段,默認值設為0

激活模型

python3 manage.py makemigrations app1,生成一個遷移

查看一下遷移所做的sql操作,python3 manage.py sqlmigrate app1 0001,可以看到已經幫我們創建了表

最后執行python3 manage.py migrate,應用一下所做的修改
這個 migrate 命令選中所有還沒有執行過的遷移(Django 通過在數據庫中創建一個特殊的表 django_migrations 來跟蹤執行過哪些遷移)并應用在數據庫上 - 也就是將你對模型的更改同步到數據庫結構上。

API的使用

python3 manage.py shell,對剛才創建的模型進行一個使用

對模型文件進行一下修改,讓Question.objects.all()所展示的信息更為直觀

from django.db import models

# Create your models here.
class Question(models.Model):
    def __str__(self):
        return self.question_text
    question_text = models.CharField(max_length=200) # 創建一個字符串字段
    pub_date = models.DateTimeField("date published") # 創建一個date字段
    
class Choice(models.Model):
    def __str__(self):
        return self.choice_text
    question = models.ForeignKey(Question, on_delete=models.CASCADE) # 標識為外鍵
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0) # 創建一個數字型字段,默認值設為0

管理員賬戶使用

創建一個管理員用戶


賬號 admin:admin123
創建之后訪問/admin,登錄進入后臺

向管理頁面加入投票應用

編寫app1/admin.py

from django.contrib import admin
from .models import Question
# Register your models here.
admin.site.register(Question)

模板文件

模板文件的引用

在app1下創建一個templates文件夾,在該文件夾下繼續創建一個index.html文件

{{question_text}}

編寫views.py

from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader

# Create your views here.
def index(request):
    template = loader.get_template("index.html")
    context = {
        "question_text": "123456"
    }
    return HttpResponse(template.render(context, request))

模板語法的使用

上面是一種最簡單的變量引用方法

循環語句

<h1>
{% for i in n %}
<h2>{{i}}</h2>
{% endfor %}
</h1>
from django.shortcuts import render?
from django.http import HttpResponse
from django.template import loader

# Create your views here.
def index(request):
    n = ['f12', 'f13', 'f14']
    return render(request, 'index.html', {'n': n})

條件語句

<h1>
    {% if i == "f12" %}
        <h2>f12 is handsome</h2>
    {% else %}
        <h2>f12 is very handsome</h2>
    {% endif %}
</h1>
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader

# Create your views here.
def index(request):
    i = 'f12'
    return render(request, 'index.html', {'i': i})

總結

以上是生活随笔為你收集整理的django的简单学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。