title: Django学习笔记

subtitle: 1. Django逻辑关系

date: 2018-12-14 10:17:28

Django逻辑关系

本文档主要基于Django2.2官方文档,学习并记录Django框架主要逻辑关系。

1. 目录结果

  • mysite/

    • manage.py
    • mysite/
      • init.py
      • settings.py
      • urls.py
      • wsgi.py
    • polls/
      • init.py
      • admin.py
      • apps.py
      • migrations/
        • init.py
      • models.py
      • tests.py
      • urls.py
      • views.py

2. 逻辑关系

(1) 第一个视图

应用视图 应用 URLconf 根 URLconf 示例
polls/views.py polls/urls.py mysite/urls.py 代码块1

代码块1

代码块1:
# polls/views.py
from django.http import HttpResponse def index(request):
return HttpResponse("Hello,word. You're at the polls index.") # polls/urls.py
from django.urls import path
from . import views urlpatterns = [
path('', views.index, name='index'),
] # mysite/urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
# 访问
http://localhost:8000/polls/

基本的请求和响应流程:

  1. Django 响应一个请求时,从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。
  2. URLconf 在处理请求时,不匹配GET 和 POST 参数或域名,而是尝试匹配//www.example.com/myapp/中的myapp/。
  3. Django 找到了一个匹配准则,用这个特定视图函数,传入一个HttpRequest对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。

(2) 第一个模型

  • 我使用的是postgresql,并将postgresql安装在Centos 1804,,然后将pgAdmin 4 v4安装在自己的笔记本上。
应用模型 激活模型 示例
polls/models.py mysite/settings.py 代码块2

代码块2

代码块1:
# polls/models.py
from django.db import models class Question(models.Model):
question_test = models.CharField(max_length=200)
pub_date = models.DateField('date published') class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_test = models.CharField(max_length=200)
votes = models.IntegerField(default=0) # mysite/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
……
]
# 配置postgresql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'HOST': 'xxx.xxx.xxx.xxx',
'PORT': '5432',
'USER':'xxx',
'PASSWORD': 'xxxxx',
'NAME': 'xxxxx',
}
}

基本的请求和响应流程:

  1. 在polls/models.py中创建新模型
  2. 在mysite/setting.py的类 INSTALLED_APPS中添加点式路径。
  3. python manage.py makemigrations polls。检测对模型文件的修改(在这种情况下,已经取得了新的),并且把修改的部分储存为一次 迁移。
(Django-yj3Phk1A) (Django)  \beginmysite> python manage.py makemigrations polls
Migrations for 'polls':
polls\migrations\0001_initial.py
- Create model Question
- Create model Choice (Django-yj3Phk1A) (Django) \beginmysite> python manage.py sqlmigrate polls 0001
BEGIN;
--
-- Create model Question
--
CREATE TABLE "polls_question" ("id" serial NOT NULL PRIMARY KEY, "question_test" varchar(200) NOT NULL, "pub_dat
e" date NOT NULL);
--
-- Create model Choice
--
CREATE TABLE "polls_choice" ("id" serial NOT NULL PRIMARY KEY, "choice_test" varchar(200) NOT NULL, "votes" inte
ger NOT NULL, "question_id" integer NOT NULL);
ALTER TABLE "polls_choice" ADD CONSTRAINT "polls_choice_question_id_c5b4b260_fk_polls_question_id" FOREIGN KEY (
"question_id") REFERENCES "polls_question" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");
COMMIT; (Django-yj3Phk1A) (Django) \beginmysite> python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
Applying polls.0001_initial... OK

Django逻辑关系的更多相关文章

  1. Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式

    在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...

  2. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程06:技能播放的逻辑关系》

    6.技能播放的逻辑关系 技能播放概述: 当完成对技能输入与检测之后,程序就该对输入在缓存器中的按键操作与程序读取的技能表信息进行匹配,根据匹配结果播放相应的连招技能. 技能播放原理: 按键缓存器中内容 ...

  3. Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式

    在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...

  4. wemall app商城源码中基于JAVA的绑定和处理fragments和viewpager之间的逻辑关系代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  5. OpenStack各组件逻辑关系、通信部署关系及工作流程

    一. OpenStack组件之间的逻辑关系 OpenStack 是一个不断发展的系统,所以 OpenStack 的架构是演进的,举个例子: E 版本有5个组件  Compute 是 Nova:Imag ...

  6. squid http_access中的逻辑关系

    http_access通过acl实现访问控制,方法 acl A acltype argument acl B acltype argument 逻辑关系:或 http_access allow|den ...

  7. Django 表关系的创建

    Django 表关系的创建 我们知道,表关系分为一对多,多对多,一对一 我们以一个图书管理系统为背景,设计了下述四张表,让我们来找一找它们之间的关系 Book与Publish表 找关系:一对多 左表( ...

  8. Essay写作关键:严谨的逻辑关系

    一篇好的文章并不是句子的机械堆砌,而是一个有机整体,句子和句子之间是存在严谨的逻辑关系的,要注意句子和句子之间,段落和段落之间的衔接和连贯(Coherence and Cohesion). 要写出逻辑 ...

  9. Django 源码小剖: Django 对象关系映射(ORM)

    引 从前面已经知道, 一个 request 的到来和一个对应 response 的返回的流程, 数据处理和数据库离不开. 我们也经常在 views.py 的函数定义中与数据库打交道. django O ...

随机推荐

  1. [bzoj2743][HEOI2012]采花_树状数组

    采花 bzoj-2743 HEOI-2012 题目大意:给定n朵花,每朵花有一个种类,m次询问:一段区间中至少出现两朵花的种类的个数. 注释:$1\le n,m\le10^6$. 想法:这个题超级像H ...

  2. JDK工具jstatd用法详解(转)

    jstatd,即虚拟机的jstat守护进程,主要用于监控JVM的创建与终止,并提供一个接口允许远程监控工具依附到在本地主机上运行的JVM. 用法摘要 jstatd [ options ] option ...

  3. ddl in PL/SQL

    If you write DDL directly in PL/SQL. You will hit error. 1 DECLARE 2 str_sql varchar2(500); 3 begin ...

  4. PHP array_flip()

    定义和用法 array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失. 如果原数组中的值的数据类型不是字符串或整数,函数将报错. 语 ...

  5. HDU 4363

    这题是记忆化搜索很容易想到,但状态却不好设 dp[i][j][u][d][l][r][k].对于矩形为i*j,它的四周的颜色分别为u,d,l,r,横竖切的状态为k的种数. 其中要注意一个问题是,停止不 ...

  6. Swift基础(类,结构体,函数)

    import Foundation // 创建一个类 class Student { // 属性(类的属性必须赋初值,如果不赋值,需要写自定义方法) var studentName: String v ...

  7. Corona 不同设备分辨率适应

    移动平台下,不同设备的宽高比不同,那么必然存在与游戏设计时的宽高比不一致的情况,Corona的解决方案是定义了一个虚拟的屏幕高宽,比如1024*768,然后在不同设备上通过定义的适应模式去调整这个虚拟 ...

  8. MySQL命令行登陆

    环境介绍 OS:CentOS6.X & Win2003 & Win2008 MySQL版本号:5.5.x 除了经常使用的MySQL管理工具,还有MySQLclient命令行工具经常被用 ...

  9. C\C++控制台颜色设置类

    windows和Linux都可用的一个类...用来设置颜色,没有太复杂.简单够用吧. #ifdef _WIN32 #include <Windows.h> class FontColor ...

  10. Stockbroker Grapevine(floyd)

    http://poj.org/problem?id=1125 题意: 首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时, 输入数据结束),然后接下来N行描述第i(1< ...