django 框架

  • 教程

https://djangobook.com/

  • 安装

首先需要虚拟环境

随便选一个目录 :  执行 

注意最后有个点

然后进入 Scripts 激活这个虚拟目录 :  

激活后如果看到目录前出现 (selected folder name  ) 就算成功 (注意, 每次重启电脑后都要 activate )

最后安装 django

安装成功后查看版本

 

版本是 2.2.2

 

安装部分参考 :  https://stackoverflow.com/questions/35950740/virtualenv-is-not-recognized-as-an-internal-or-external-command-operable-prog

  •  Hello world

https://djangoforbeginners.com/hello-world/

 

安装完成 django之后 ,新建一个 app

进入 app 执行

此命令将会生成 sqllite 数据库

 

创建超级用户

lthxk ;  Piercing77 ;  mzcw2011@sina.cn

 

 

 

启动server

 

将默认结构导入 sqllite数据库 ,  将models.py 的结构自动在数据库生成

 

新建一个app ,  可以有多个app

 

html templete store    https://themeforest.net

  • 怎么建一个简单的app

Building and deploying an Enterprise Django Web App in 16 hours

https://medium.com/python-pandemonium/building-and-deploying-an-enterprise-django-web-app-in-16-hours-79e018f7b94c


数据库部分 

  • 能不能直接用已有的数据库连接器比如 pymysql

不能, 必须在django的虚拟目录重新

 

  • 怎么连接 数据库

for  连接 : 修改 settings.py ,

  • 把表自动生成 类

这样所有的表都会被定义在  models 里面

用新生成的 models.py 替换 pages 目录原有的即可

  • 怎么显示表或者查询结果

a)  视图直接显示

先 import  models

因为 models.py 在 pages 目录下

然后在视图写:

参考 :  https://stackoverflow.com/questions/7287027/displaying-a-table-in-django-from-database

 

如果要显示的好看一点 , 用 django-tables2 ,  带分页和排序

django-tables2 安装 :

安装成功显示

 

在 settings.py  加上  “django_tables2”,

 

  • 如果已经用这个命令 python manage.py inspectdb > models.py  生成了 py 文件

但是之后又修改了表结构 ,怎么重新更新  models.py  ?


 

  • 怎么显示 matlibplot
  • 增删改   (CRUD)

https://rayed.com/posts/2018/05/django-crud-create-retrieve-update-delete/

  • how to debug , include step by step

https://www.bedjango.com/blog/how-debug-django-useful-tips/

 

  • How to call rest api

https://stackoverflow.com/questions/30259452/proper-way-to-consume-data-from-restful-api-in-django

 

如何把 admin 和 rest api 合起来, 就是说  ,admin register 的 model 是从 rest api 得来  , 而不是内部数据库

https://stackoverflow.com/questions/9013099/django-admin-using-restful-api-v-s-database

这个问题最接近 , 但是似乎没答案

 


  • django 要求表必须有 primary key

见 : https://stackoverflow.com/questions/40862994/django-error-unknown-column-categorytree-id-in-field-list

https://stackoverflow.com/questions/605896/django-querying-read-only-view-with-no-primary-key

  • 重要的概念 :

a)  什么是 migration

Migrations are Django’s way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema

注意是从 models ——> database

如果database 先发生改变, 怎么更新 models ?

这篇文章说的很详细 : https://stackoverflow.com/questions/30547580/django-update-models-py-when-database-changes

b) ORM  mean object relation mapping

当设置好 settings.py 的数据库连接后, 一旦 django create a model , mysql 那边会自动 建立相应的表

支持

  • PostgreSQL
  • MySQL
  • SQLite
  • Oracle

教程 :  https://djangobook.com/mdj2-models/

 

  • Django 支持的mysql 版本  : 大于等于  5.6

当前是  5.1 版本 , migrate 会出错

https://stackoverflow.com/questions/52730817/django-migrate-error-mysql-exceptions-programmingerror-1064-you-have-an-err

  • 找一个模板

去  https://themeforest.net  找 

admin templete

github 的  https://github.com/guohongze/adminset


  • admin

How to add models to admin.py :   https://www.dev2qa.com/how-to-add-models-to-django-admin-site/