Django逻辑关系
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/
基本的请求和响应流程:
- Django 响应一个请求时,从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。
- URLconf 在处理请求时,不匹配GET 和 POST 参数或域名,而是尝试匹配//www.example.com/myapp/中的myapp/。
- 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',
}
}
基本的请求和响应流程:
- 在polls/models.py中创建新模型
- 在mysite/setting.py的类 INSTALLED_APPS中添加点式路径。
- 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逻辑关系的更多相关文章
- Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程06:技能播放的逻辑关系》
6.技能播放的逻辑关系 技能播放概述: 当完成对技能输入与检测之后,程序就该对输入在缓存器中的按键操作与程序读取的技能表信息进行匹配,根据匹配结果播放相应的连招技能. 技能播放原理: 按键缓存器中内容 ...
- Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- wemall app商城源码中基于JAVA的绑定和处理fragments和viewpager之间的逻辑关系代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- OpenStack各组件逻辑关系、通信部署关系及工作流程
一. OpenStack组件之间的逻辑关系 OpenStack 是一个不断发展的系统,所以 OpenStack 的架构是演进的,举个例子: E 版本有5个组件 Compute 是 Nova:Imag ...
- squid http_access中的逻辑关系
http_access通过acl实现访问控制,方法 acl A acltype argument acl B acltype argument 逻辑关系:或 http_access allow|den ...
- Django 表关系的创建
Django 表关系的创建 我们知道,表关系分为一对多,多对多,一对一 我们以一个图书管理系统为背景,设计了下述四张表,让我们来找一找它们之间的关系 Book与Publish表 找关系:一对多 左表( ...
- Essay写作关键:严谨的逻辑关系
一篇好的文章并不是句子的机械堆砌,而是一个有机整体,句子和句子之间是存在严谨的逻辑关系的,要注意句子和句子之间,段落和段落之间的衔接和连贯(Coherence and Cohesion). 要写出逻辑 ...
- Django 源码小剖: Django 对象关系映射(ORM)
引 从前面已经知道, 一个 request 的到来和一个对应 response 的返回的流程, 数据处理和数据库离不开. 我们也经常在 views.py 的函数定义中与数据库打交道. django O ...
随机推荐
- [bzoj1468][poj1741]Tree[点分治]
可以说是点分治第一题,之前那道的点分治只是模模糊糊,做完这道题感觉清楚了很多,点分治可以理解为每次树的重心(这样会把数分为若干棵子树,子树大小为log级别),然后统计包含重心的整个子树的值减去各个子树 ...
- 08springMVC拦截器
u 概述 u 拦截器接口 u 拦截器适配器 u 运行流程图 u 拦截器HelloWorld u 常见应用之性能监控 1 概述 1.1 简介 Spring Web M ...
- Clojure:解决korma中mysql utf8的问题
当使用korma内置的mysql方法时,无法添加utf-8的支持.解决的方法就是重写mysql方法,代码如下: (defn mysql "改编自korma,添加了utf-8的支持" ...
- ubuntu 关于sublime text3的一些应用
安装 如今能够通过ppa的方法来安装sublime text3 了,个人感觉就是有有点儿慢,毕竟要update一下. sudo add-apt-repository ppa:webupd8team/s ...
- extjs的formpanel横向滚动条的解决办法
关于formpanel设置autoscroll:true同时出现横向和纵向滚动条的解决办法: 不要设置autoscroll属性,或者autoscroll:false,然后设置bodyStyle : ' ...
- spring拦截器和注解处理日志操作
整体思想:通过拦截器拦截所有的请求,处理含有自定义注解的方法,通过request得到需要的参数. 拦截器代码: package com.zktx.platform.log2; import java. ...
- oc63--协议@protocol1
// // SportProtocol.h // day17 #import <Foundation/Foundation.h> @protocol SportProtocol <N ...
- hdu 1242(BFS+优先队列)
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- C语言程序读写文件(文件内存一个十进制数,每读一次数值加一)
1.问题:C语言程序实现读写一个txt文件,txt文件中存储一个十进制数.每读一次该数值加一. 2.实现:新建一个文件夹,在该文件夹中建一个outputFileName.txt文件.内容是:1,再在该 ...
- 图结构练习—BFSDFS—判断可达性(BFS)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2138 注意该图为有向图,1000个点应该最多有 ...