Django

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

django的安装

pip install Django
pip install Django = 2.2.3 新版本

开发服务器

python manage.py runserver
python manage.py runserver 0.0.0.0:8000 自定义访问者ip和开放端口
manage.py的源码理解,把settings路劲作为系统环境变量注入,sys.arv搜集命令行参数,最终交给cmdline函数运行。
得到:

基本项目结构介绍:

manage.py 命令行工具,负责运行、负责运行、创建子模块等功能,跟django-admin。
mysite 跟项目同名的子包
mysite/settings 工程项目设置文件。数据库、时区、语言等,方便其他地方调用。
mysite/urls.py url路由,指向不同的视图函数。
mysite/wsgi 通用网关。部署时间到。

创建项目

安装Django后会一并安装ajango-admin.exe的命令行公

  1. cd 到放项目的目录下
  2. django-admin startproject [project name]
  3. python manage.py startapp polls

关于app

python manage.py startapp [appname]
project VS apps , django项目里的app并不是我们平时所说的应用。一个项目、一个应用在project,django框架中的app是一个更小级别的划分,代表一个大模块。
比如大型项目教育网站,权限、学生、教室、后台,每个大模块下有几十个页面功能。都写在一起脚本太大不好维护,所有django小项目可以一个模块,大项目可以按逻辑分为多个app(子应用)。
目录:
app/migrations:数据库迁移桥本
admin.py 自带的后台配置文件,快捷实现表CRUD
models.py 定义数据库表结构
tests.py 单元测试
views.py 功能逻辑,渲染页面

修改文件自动重启dajango de开发模式自动重启服务
1.在views.py文件里导入

2.创建视图

3.设置子url

4.响应流程图
在浏览器中输入http://127.0.0.1:8000/polls/index/
获取polls中的内容

整体流程

客户端发起请求
全局urls(项目同名包下的) 查询指向视图或子app下的url
app下子url继续匹配,成功匹配指向视图函数
视图函数进行业务逻辑处理,返回http响应信息
浏览器加载响应html代码,看到结果

http://127.0.0.1:8000/polls/index/
-------ip和端口 ------全局url子url*

在终端中创建库


show variables like ‘character%’;




报错

1.启动服务 unicodeDecodeError: utf-8 can not
原因 源代码gethostaddr() , windows默认编码gbk,计算机名为中文会导致报错。 解决,我的电脑右键属性修改计算机名为英文。
2.404,url找不到
原因url配置错误。
分析,观察报错url规则,看目录层级,url正斜杠。
浏览器请求的url配置文件里的匹配规则正斜杠结尾。
3.套接字无权限操作
原因。某些软件占用了8000端口
解决,解说软件或更改服务端口

配置settings.py

mysql连用户名 密码。项目大型后悔有很多配置,如果写在每一个py脚本中将代码。解决方案是在 py .json 配置文件声明键值对变量。其他各个py脚本变量
配置变量习惯上全大写字母命名。

数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
默认sqllite,其他mysql,posrgressql

其它,详见settings.py注释









迁移

1.model.py 用类的方式定义表的结构。
2.想要使用和生成表结构的app需要先加入到settings中的installed_apps
3.生成sql python manage.py makemigrations [app_name],生成的迁移脚本在migrations文件夹下。
4.执行sql python manage.py migrate
5.成功后会在数据库中看到生成的表。django_migrations表记录迁移的过程

可能报错:

  1. makemigration,显示 no changes 说明mofel.py没有新变化。
    2.db.sqlite3 后缀无所谓,本质都是数据库,但跟txt不同,有自己的规则,必须由驱动生成,不能直接在pycharm中new。django 初始migrate迁移内置app时会初始化。
  2. socket没权限,

ORM

文档位置 模型层 - supported database . http://d.u753mysql,
mysql:
1.官方推荐驱动mysqlclient
'pip install mysqlclient ’
2.缺点字符集为utf-8
登录mysql客户端 show varibles like 'character%';
主要看sever database两个变量的值。

3.DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 'NAME':'my_mysql_instance', 'USER':'root', 'PASSWORE':'56tyghbn', 'HOST':'127.0.0.1', 'PORT':'3306', 'OPTIONS': { # 'read_default_file': '/path/to/my.cnf', }, }

关于django的网址

https://www.v2ex.com/t/581284
http://d.u753.com/index.html django中文文档
文档位置 模型层-supported database ,http://d.u753.com/ref/databases.html
配置settings-database http://d.u753.com/ref/settings.html#std:setting-NAME
https://blog.csdn.net/w18211679321/article/details/82709460 django2.2暂时不支持mysql8.0加密方式
https://www.cnblogs.com/rinka/p/django_make_queries_anout_built-in_lookups.html django查询总结
http://d.u753.com/intro/tutorial02.html 中文版

大概的知识点 有点乱(乱的一批)相关推荐

  1. qmake 乱乱乱谈(二)

    接前面qmake 乱乱乱谈(一),继续看看qmake. 暂定主题:qmake之命令行参数及qmake启动时加载了什么东西,或许可以借此学习一下qmake是处理命令行参数的方法 命令行参数 运行 qma ...

  2. qmake 乱乱乱谈(三)

    接前面的qmake 乱乱乱谈(一)以及qmake 乱乱乱谈(二),本文看看qmake中的函数(Manual中有的就不重复了). 函数分两种: 内置函数 (qmake Manual中列出的属于此类) 自 ...

  3. 乱乱乱!那些惨不忍睹的机房布线

    原本就有点乱 后来扩容又不敢随意乱动 新老布线导致越来越乱 最后变成像蜘蛛网一样难以理清头绪 后期维护和整改简直要崩溃 : 领导叫我去理线 ▼ 本期内容就一个字 没有最乱 只有更乱 你见过还有比这更乱 ...

  4. qmake 乱乱乱谈(一)

    不想太深入地去看qmake,可是,左等,右等,总不见Qt新的构建系统有什么新消息.还是整理一下qmake吧,由于没什么主题,还不知道本文最终会乱到什么程度. 注:你可能会对下面的内容感兴趣. 浅谈 q ...

  5. GIT——乱乱的理解

    帮助理解的 从觉得说的清晰的拿来,我也是很方. hello 工作区hello 缓存区空 hello world 工作区hello world缓存区空 git add 工作区hello world 缓存 ...

  6. SCWCD乱乱的资源

    一.认证书 (1)纸质<SCWCD认证专家应考指南> 可以在 http://www.broadview.com.cn/ 等各书店买到8折的书 听说是310-080,现在最近的是310-08 ...

  7. qmake 乱乱乱谈(四)

    继续qmake,本文主题:低调的 TEMPLATE = subdirs 非常非常常用的一个东西,可是manual中却介绍的很少,太低调了.在编写包含多可执行文件.库.插件 的程序时,一直不敢相信sub ...

  8. 使用 feilong 包来给乱乱的尺码做分组

    今天小黄黄又来找我了 小黄: 我有个需求, 有以下字符串 EUR 39, EU 39, 38, 2, AUS 38, UK 38, US 37, US 37, US 36, UK 36, UK 35, ...

  9. 听说采购的办公桌越乱,工作效率越高?刚刚,我冒死偷拍到采购部同事的电脑桌面……

    一项研究证明:办公桌越乱,工作效率更高.不是所有的凌乱都意味着失控,就连乔布斯都认为他的个人魅力是从凌乱的桌面开始形成的. 先看看我自己的: 这是我非常原生态的桌子! ▼ 我妈总说我太乱了, 在她眼中 ...

  10. 检测窥屏_开挂、狙击、窥屏?乱象丛生的炉石狂野天梯,到底怎么了?

    今日正文   1   中午吃饭时,我第二十三次诱惑牌酱跟我一起去狂野玩,在他第二十三次拒绝后,我问他为什么,他放下了筷子看着我,只说了一个字:"乱" 乱?嗯,想想最近的狂野,不论是 ...

最新文章

  1. Microbiome:浙大马忠华团队-生防细菌抑制病原真菌新机制
  2. oracle awr 修改Snapshots设置
  3. 在Azure上创建MYSQL服务
  4. 利用WinRAR命令行压缩文件或文件夹
  5. matlab自带四旋翼算例asbQuadcopter使用心得
  6. 谷歌大脑计划研究员Chris Olah的博客
  7. 6-3 二叉搜索树中的最近公共祖先 (25 分)
  8. ACL'22 | 关系抽取和NER等论文分类整理
  9. react中对象扩展运算符使用问题
  10. 深度学习(三):初级卷积神经网络
  11. 中公计算机岗位知识与技能,知识与技能的分类
  12. Spring Boot 事务详解
  13. SpringBoot项目使用RestTemplate发送请求踩坑记录
  14. CC00052.LBCHAC——|Selinux.V2|——|2台server|
  15. android修改图片(修改图片大小,图片旋转,图片平移)
  16. 聚类分析在用户行为中的实例_聚类分析的简单案例
  17. 昆石VOS2009/VOS3000 2.1.7.03 Web 接口说明
  18. 怎么传文件到百度云服务器,别人传文件给我 可是怎么用百度网盘保存文件呢 其实很简单!...
  19. 【js调用后端接口】
  20. 【OS笔记 20】经典同步问题——理发师睡觉问题(信号量解决方案)

热门文章

  1. Linux Kernel Makefiles(转)
  2. table 表格边框线去重
  3. 一台计算机英语美式发音,请教美式英语的几个发音问题!
  4. 5分钟latex 使用入门写llncs论文
  5. C语言:提取字符串中的数字
  6. 倾向得分匹配PSM案例分析
  7. 微信公众号客服系统可以实现自动回复吗?
  8. IOS 发展史各个ipone的发布时间(二)
  9. mysql 金额大写_小写转大写金额_MySQL
  10. ad中按钮开关的符号_电工必备基础知识及电路的符号字母大全