国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

1-django簡介和基本流程走通

lei___ / 2161人閱讀

摘要:簡介是一個開放源代碼的應用框架,由寫成,初次發布于年月,并于年月發布了第一個正式版本是一種軟件設計典范,核心思想是解耦優點降低各功能模塊之間的耦合性,方便變更,更容易重構代碼,最大程度上實現了代碼重用圖解模型是應用程序中用于處理程序邏輯的部

Django簡介

Django是一個開放源代碼的Web應用框架,由python寫成,初次發布于2005年7月,并于2008年9月發布了第一個正式版本1.0

MVC:MVC是一種軟件設計典范,核心思想是解耦

MVC優點:降低各功能模塊之間的耦合性,方便變更,更容易重構代碼,最大程度上實現了代碼重用

MVC 圖解

Model(模型):是應用程序中用于處理程序邏輯的部分,負責數據庫中存儲數據

View(視圖):是應用程序中處理數據顯示的部分,通常視圖是依據模型數據創建的

Controller(控制器):是應用程序中處理用戶交互的部分,通常控制器負責從視圖讀取數據,控制用戶輸入,并向模型發送數據

Django的MTV

本質與MVC模式沒有區別,只是定義形式不同

Model(模型):負責業務對象與數據庫的對象(ORM)

Template(模板):負責如何把頁面展示給用戶

View(視圖):負責業務邏輯,并在適當的時候調用Model和Template

MTV圖解

創建工程
# 黑屏終端,進入指定目錄 創建工程
django-admin  startproject  project

基本操作 數據庫配置

Django默認使用SQLite數據庫,如果需要使用如mysql等數據庫需要在setting.py文件中配置

配置SQL

__init__.py文件中增加代碼(py2.x無需操作)

# __init__.py
import pymysql pymysql.install_as_MySQLdb()
# settings.py
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "py03",
        "USER":"root",
        "PASSWORD":"123456",
        "HOST":"localhost",
        "PORT":"3306",
    }
}

-------
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "數據庫名稱",
        "USER": "用戶名",
        "PASSWORD": "密碼",
        "HOST": "數據庫服務器ip",
        "PORT": "端口號",
    }
}
創建應用

在一個工程中可以創建一個到多個應用,每個應用處理一種業務邏輯

打開黑屏終端進入工程目錄下 python manage.py startapp myApp

目錄結構:

├── db.sqlite3   # 數據庫
├── myApp   # 一個應用
│?? ├── admin.py  # 管理
│?? ├── apps.py   # 應用的配置
│?? ├── __init__.py
│?? ├── migrations  # model到數據庫映射的中間文件
│?? │?? └── __init__.py
│?? ├── models.py  # model
│?? ├── tests.py   # 在這里可以寫測試代碼
│?? └── views.py   # 視圖
├── project  #  創建項目時創建的目錄
│?? ├── __init__.py
│?? ├── settings.py  # 項目的配置文件
│?? ├── urls.py  # 根路由
│?? └── wsgi.py   
└── manage.py
# setting.py
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "myApp",
]
啟動服務

python manage.py runserver ip:port

ip可以不寫 python manage.py runserver

端口默認8000,可以多帶帶修改 python manage.py runserver port

定義模型

modeles.py

from django.db import models
# Create your models here.

class Grade(models.Model):
    name = models.CharField(max_length=20)
    boyNum = models.IntegerField()
    girlNum = models.IntegerField()
    isDelete = models.BooleanField(default=False)

    def __str__(self):
        return self.name


class Student(models.Model):
    name = models.CharField(max_length=20)
    sex = models.BooleanField()
    age = models.IntegerField()
    content = models.CharField(max_length=40)
    # 關聯類名的小寫加引號或者直接類名
    grade = models.ForeignKey("grade")
    isDelete = models.BooleanField(default=False)

    def __str__(self):
        return self.name

說明:不需要定義主鍵列,在生成時會自動添加,并且值為自動增長

生成數據表

生成遷移文件:python manage.py makemigrations
作用: 在應用目錄下的migrations目錄下成遷移文件

查看建表語句: python manage.py sqlmigrate APP名字 0001
說明:0001為makemigrations之后產生了0001_initial.py文件

執行遷移: python manage.py migrate
作用:相當于執行sql語句生成數據表,表名為 應用名全小寫_類名全小寫

模型操作數據庫
# 進入pyhton shell模式 
python manage.py shell

# 引入包
from myApp.models import Grade,Student

# 增
>>> grade = Grade()
>>> grade.name = "python01"
>>> grade.boyNum = 50
>>> grade.girlNum = 10
>>> grade.save()
>>> stu = Student()
>>> stu.name = "sunck"
>>> stu.sex = "True"
>>> stu.age = 18
>>> stu.contend = "sunck is a good man"
>>> stu.grade = grade
>>> stu.save()

# 刪
stu.delete()

# 改
>>> stu.age = 17
>>> stu.save()

# 查
stus = Student.objects.all()
grade = Grade.objects.get(pk=1)
視圖的基本使用 概述:

在Django中視圖對WEB請求進行響應的,視圖的本質是python中的函數,在views.py文件中定義,

視圖接收request對象作為第一個參數,包含了請求的信息

定義視圖

view.py

from django.shortcuts import render
from django.http import HttpResponse
from myApp.models import Grade, Student

def index(request):
    return HttpResponse("sunck is a good man")
def detail(request, num):
    return HttpResponse("detail %s" % num)
配置路由

主路由:與工程名相同名字的目錄下的urls.py文件

配置文件:ROOT_URLCONF = "project.urls"

urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r"^admin/", admin.site.urls),
    # 包含子路由
    url(r"^", include("myApp.urls")),

]

子路由:在應用目錄下創建名為urls.py的文件
作用:路由分發,規定哪個網址由哪個視圖處理

urls.py

from django.conf.urls import url
from myApp import views

urlpatterns = [
    # 路由匹配
    url(r"index/", views.index),
    url(r"detail/(d+)/", views.detail),
]
模板的基本使用

概述:模板是HTML界面,可以根據視圖傳遞的數據進行填充

創建模板目錄:工程目錄下創建名為templates的目錄,也可以放在項目目錄中

配置模板路徑:

settings.py

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [os.path.join(BASE_DIR, "templates")],
        "APP_DIRS": True,
    }
定義模板

grade.html




    
    班級信息


    

班級信息

    {% for grade in grades %}
  • {{ grade.name }}
  • {% endfor %}

student.html




    
    學生信息


    

學生信息

    {% for stu in stusList %}
  • {{ stu.name }}--{{ stu.grade }}--{{ stu.age }}
  • {% endfor %}

在視圖中返回模板

views.py

from myApp.models import Grade, Student
def students(request):
    #獲取所有學生信息列表
    stus = Student.objects.all()
    return render(request, "students.html", {"stusList":stus})

def grades(request):
    grades = Grade.objects.all()
    return render(request, "grades.html", {"grades": grades})

def gstudents(request, gid):
    stus = Student.objects.filter(grade_id=gid)
    return render(request, "students.html", {"stusList":stus})

urls.py

url(r"students/grade/(d+)/", views.gstudents),

2-Django——模型

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41921.html

相關文章

  • Django 博客開發教程 3 - 創建 Django 博客的數據庫模型

    摘要:而對于標簽來說,一篇文章可以有多個標簽,同一個標簽下也可能有多篇文章,所以我們使用,表明這是多對多的關聯關系。理解多對一和多對多兩種關聯關系我們分別使用了兩種關聯數據庫表的形式和。表明一種一對多的關聯關系。 設計博客的數據庫表結構 博客最主要的功能就是展示我們寫的文章,它需要從某個地方獲取博客文章數據才能把文章展示出來,通常來說這個地方就是數據庫。我們把寫好的文章永久地保存在數據庫里,...

    Shimmer 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<