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

資訊專欄INFORMATION COLUMN

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

lei___ / 2170人閱讀

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

Django簡介

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

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

MVC優(yōu)點:降低各功能模塊之間的耦合性,方便變更,更容易重構(gòu)代碼,最大程度上實現(xiàn)了代碼重用

MVC 圖解

Model(模型):是應(yīng)用程序中用于處理程序邏輯的部分,負責(zé)數(shù)據(jù)庫中存儲數(shù)據(jù)

View(視圖):是應(yīng)用程序中處理數(shù)據(jù)顯示的部分,通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的

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

Django的MTV

本質(zhì)與MVC模式?jīng)]有區(qū)別,只是定義形式不同

Model(模型):負責(zé)業(yè)務(wù)對象與數(shù)據(jù)庫的對象(ORM)

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

View(視圖):負責(zé)業(yè)務(wù)邏輯,并在適當(dāng)?shù)臅r候調(diào)用Model和Template

MTV圖解

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

基本操作 數(shù)據(jù)庫配置

Django默認使用SQLite數(shù)據(jù)庫,如果需要使用如mysql等數(shù)據(jù)庫需要在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": "數(shù)據(jù)庫名稱",
        "USER": "用戶名",
        "PASSWORD": "密碼",
        "HOST": "數(shù)據(jù)庫服務(wù)器ip",
        "PORT": "端口號",
    }
}
創(chuàng)建應(yīng)用

在一個工程中可以創(chuàng)建一個到多個應(yīng)用,每個應(yīng)用處理一種業(yè)務(wù)邏輯

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

目錄結(jié)構(gòu):

├── db.sqlite3   # 數(shù)據(jù)庫
├── myApp   # 一個應(yīng)用
│?? ├── admin.py  # 管理
│?? ├── apps.py   # 應(yīng)用的配置
│?? ├── __init__.py
│?? ├── migrations  # model到數(shù)據(jù)庫映射的中間文件
│?? │?? └── __init__.py
│?? ├── models.py  # model
│?? ├── tests.py   # 在這里可以寫測試代碼
│?? └── views.py   # 視圖
├── project  #  創(chuàng)建項目時創(chuàng)建的目錄
│?? ├── __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",
]
啟動服務(wù)

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)
    # 關(guān)聯(lián)類名的小寫加引號或者直接類名
    grade = models.ForeignKey("grade")
    isDelete = models.BooleanField(default=False)

    def __str__(self):
        return self.name

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

生成數(shù)據(jù)表

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

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

執(zhí)行遷移: python manage.py migrate
作用:相當(dāng)于執(zhí)行sql語句生成數(shù)據(jù)表,表名為 應(yīng)用名全小寫_類名全小寫

模型操作數(shù)據(jù)庫
# 進入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請求進行響應(yīng)的,視圖的本質(zhì)是python中的函數(shù),在views.py文件中定義,

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

定義視圖

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")),

]

子路由:在應(yīng)用目錄下創(chuàng)建名為urls.py的文件
作用:路由分發(fā),規(guī)定哪個網(wǎng)址由哪個視圖處理

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界面,可以根據(jù)視圖傳遞的數(shù)據(jù)進行填充

創(chuàng)建模板目錄:工程目錄下創(chuàng)建名為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




    
    學(xué)生信息


    

學(xué)生信息

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

在視圖中返回模板

views.py

from myApp.models import Grade, Student
def students(request):
    #獲取所有學(xué)生信息列表
    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——模型

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41921.html

相關(guān)文章

  • Django 博客開發(fā)教程 3 - 創(chuàng)建 Django 博客的數(shù)據(jù)庫模型

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

    Shimmer 評論0 收藏0

發(fā)表評論

0條評論

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