初始Git

git init 初始化本地仓库,会在根目录下创建一个.git文件夹
git log 查看提交日志
git status 查看日志
git add 文件名 添加到缓存区
git commit -m loginfo 将缓存区文件提交,loginfo 为说明
git config --global user.email yourname@example.com 创建一个邮箱
git config --global user.name 创建一个名字
git reset --hard 版本号 切换到某个版本号
git reset --hard HEAD^^^ 切换到上上上一个版本,不能使用其他符号返回
git reset --hard HEAD~10 切换到10个版本之前
git reflog 查看操作日志 查看历史所有版本号
NO commits yet 没有任何提交

Git分支命令

查看所有分支
git branch
创建分支dev1
git branch dev1
切换分支
git checkout dev1
切换到主分支
git checkout master
将dev1合并到master
首先切换到主分支:git checkout master
然后进行合并:git merge dev1
删除dev1
git branch -d dev1
创建并切换分支dev2
git checkout -b dev2
备注:合并和删除可以在同一行写多个分支

1.为什么要使用虚拟环境?

因为在一个电脑上可能有多个项目,多个项目依赖于不同的Django版本,所以就需要一个依赖包管理的工具来处理多个互不干扰的开发的环境

2.如何安装配置虚拟环境

首先在命令行中输入pip install virtualenv
再输入pip install virtualenvwrapper-win
然后在环境变量中配置环境变量
我的电脑>属性>高级系统设置>高级>环境变量>系统变量>新建
WORKON_HOME 虚拟环境路径
安装虚拟环境mkvirtualenv 虚拟环境名字
eg:如果没有加虚拟环境名字会报错

Django创建项目

远程仓库地址:https://github.com/ice-a/homework.git
在E盘创建一个文件夹命名为homework
使用git clone https://github.com/ice-a/homework.git
命令将远程仓库克隆到本地
在.git同级目录运行cmd,此时如下图
使用django-admin startproject demo1创建django项目,创建成功如下图

Django创建应用

打开pycharm在terminal中输入命令
Python manage.py startapp booktest

如何使用Pycharm使用指定虚拟环境打开上述项目

File=》settings=》Project=》Project Interpreter=》
File>>setttins> project django> project Interpreter
添加一个system interpreter
选择解释器

在项目应用的models中创建数据库的类

1.//创建book表
class book(models.Model):
title=models.CharField(max_length=30) //创建book的第一个字段title
pub_date=models.DateTimeField(auto_now_add=True) //创建添加日期
//创建hero表
class hero(models.Model):
name=models.CharField(max_length=30) //创建hero表的name
gender=models.BooleanField(True) //设置gender的bool默认值为True
skill=models.CharField(max_length=30,null=True) //设置hero表的skill
wj=models.ForeignKey(book,on_delete=models.CASCADE) //设置外键
2.在项目demo1中的settings找到installed_apps在尾部加入项目应用名字(INSTALLED_APPS)
3.在terminal中输入python manage.py makemigrations
再次输入会显示No changes detected
4.在terminal中输入python manage.py migrate
再次输入会显示Running migrations: No migrations to apply.
5.生成的db.splites3在navitecat打开数据库
使用shell测试django数据
在manage.py文件同级打开terminal
输入from booktest.models import book,hero导入book类和hero类
创建b1,b2,h1,h2
from booktest.models import book,hero
b1=book()
b1.title='茅山道士'
b1.pub_data='2001-12-12 11:11:11'
b1.save()
b2=book()
b2.title='中国队长'
b2.pub_data='2020-12-12 12:12:12'
b2.save()
h1=hero()
h1.name='美猴王'
h1.gender=False
h1.skill='七十二变'
h1.wj=b1
h1.save()
h2=hero()
h2.name='李云龙'
h2.gender=False
h2.skill='我的意大利炮呢'
h2.wj=b1
h2.save()

查询

book.objects.all()
<QuerySet [<book: 复仇者联盟>, <book: 中国队长>, <book: 天龙八部>, <book: 茅山道士>, <book: 中国队长>]>

插入

构造对象.save()

修改

构造对象.name=新的值
构造对象.save()

删除

构造对象.delete()
b1.delete()
返回结果(3, {'booktest.hero': 2, 'booktest.book': 1})

MVC框架是什么?

	MVC框架的核心思想是:解耦
MVC框架是降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程 度上实现代码的重用
数据流
1.客户端向控制器发出请求
2.控制器连接数据模型
3.数据模型访问数据库
4.数据库将数据返回给数据模型
5.数据模型将数据库返回的数据发送给控制器
6.控制器连接到视图,便于用户查看
7.视图将数据处理成用户可识别的返回给控制器
8.控制器返回给用户视图处理过的数据
每一部分的工作
M表示model 主要用于对数据库的封装
V便是view 主要用于向用户展示结果
C表示controller 是核心,主要用于处理请求,获取数据,返回结果

MVT框架是什么?

MVT框架主要用于Django
数据流
1.客户端向view发送请求
2.View将数据发送给模型
3.模型向数据库请求数据
4.数据库返回给模型数据
5.模型将数据库返回的数据发送给视图
6.视图将模型返回的数据发送给模板
7.模板对数据进行处理,处理结束后将数据返回给视图
8.视图最后将处理的数据返回给客户端
每一部分的工作
M表示model 负责与数据库的交互
V表示View 是MVT的核心,负责接受请求,获取数据,返回结果
T表示template 负责呈现内容到浏览器

如果我在Django中想使用mysql该怎么配置

源代码路径:E:\enlev\django\Lib\site-packages\django\db\backends\mysql
修改了base.py和operations.py出现的第一个问题
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you install mysqlclient?
解决思想:你有没有装mysql客户端
解决:pip install pymysql
在__init__添加了
import pymysql
pymysql.pymysql.install_as_MySQLdb()
出现的第二个问题:
django.db.utils.InternalError: (1049, "Unknown database 'djangotest'")
解决思想:不知道数据库djangotest
解决:连接到MySQL创建了一个数据库
出现的第三个问题:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解决思想:在网上翻阅教程
解决:应该是版本问题,修改了base的35和36行,修改为37和38行
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
出现的第四个问题
AttributeError: 'str' object has no attribute 'decode'
解决思想:在查看源代码中注释了operations.py这个文件里边145-147行
解决:解决之后可以运行
收获:多看看python源代码

路由和接口的理解

a) 项目路由
项目路由是创建项目的文件夹下的urls.py文件,一般用于整个项目工程,里边的应用路由建议配置在应用项目
b) 应用路由
在应用文件夹的根目录创建一个py文件,用于存放整个应用的应用路由,一般建议命名为urls.py,不建议在项目路由中配置应用路由信息
c) 视图函数
在django中,视图对WEB请求进行回应接收reqeust对象作为第一个参数,包含了请求的信息,视图其实就是一个Python函数,被定义在views.py
d) 路由传参
视图函数传参需要通过正则分组实现,每一个分组对应一个参数
如url(r'^detail/(\d+)$',views.detail)路由对应的视图函数detail就必须具备一个参数

模板如何使用

a)加载模板流程
1.加载模板
temp = loader.get_template('mall/list.html')
2.构造上下文
context={"allbrand":allbrand}
3.渲染模板
result = temp.render(context)
b)如何给模板传递参数
在view视图中通过创建视图函数来给模板传递参数
c)在模板中如何编写页面跳转
<p><a href="/mall/deatil/">详情页</a></p>

新建工程步骤

1.创建项目
2.创建应用
3.创建模型(在选择下拉列表容易出错,建议使用字符串)
4.在admin中注册模型
5.数据迁移
6.生成数据库
7.创建超级用户
8.运行文件
9.在浏览器中打开后台进行添加数据
10.添加数据结果
11.创建视图,创建模板文件
12.配置项目路由
13.配置应用路由
14.配置模板
15.配置主页
16.配置list列表页
17.配置商品详情页
18.运行mall应用
19.首页效果
20.列表页
21.详情页

视图函数如何传递多个参数

视图函数想要传递多个参数只需要在urls路由表时给url后面第一个参数正则表达式后面多写几个/第一个参数/第二个参数/第三个参数/  完成这个配置需要注意的是 在视图的def函数中需要些响应的形式参数进行接收

如何使用模板注释

想要在模板中使用注释 需要写上
{# 需要注释的内容 #}

如何解除模板硬编码

需要在主目录的urls目录中写入
然后到应用目录的 urls中 写入
在应用目录下的urls的路由中写入name属性
然后在模板中去除url的硬编码

模板中如何使用静态资源

首先先去 主项目的setting文件中配置一个 文件目录
然后在根目录同级 创建一个 static文件夹 并创建几个子文件夹
然后在css里面写入一个样式
然后可以在模板中引入使用

如何使用Bootstrap添加轮播图

先BOOTSTRP找到 三个CDN
第一个是 BOOTSTRP的CSS样式 连接
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
第二个是 BOOTSTRP的jQuery样式 连接
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
第三个是 BOOTSTRP的JavaScript样式 连接
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
eg:注意导入顺序
导入完毕以后 去BOOTSTRP 官网找到 轮播插件代码
复制轮播代码设置轮播格式

重定向如何使用

重定向是 系统解决了客户端的请求后 又由系统自动触发了一个自己的请求,然后将系统请求出来的结果 返回给客户端
eg:需要引入重定向

Django小总结的更多相关文章

  1. Django+小程序技术打造微信小程序助手 ✌✌

    Django+小程序技术打造微信小程序助手 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 从零到一的完整项目开发实战过程,项目开发聚焦重要知识点,先原理后实战 ...

  2. Django+小程序技术打造微信小程序助手

    Django+小程序技术打造微信小程序助手   整个课程都看完了,当前这个课程的分享可以往下看,下面有某盘的链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,同时也分享下自己的总结 ...

  3. Django 小实例S1 简易学生选课管理系统 12 CSS样式完善

    Django 小实例S1 简易学生选课管理系统 第12节--CSS样式完善 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块的逻辑代码到这里 ...

  4. Django 小实例S1 简易学生选课管理系统 11 学生课程业务实现

    Django 小实例S1 简易学生选课管理系统 第11节--学生课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,学生需要拥 ...

  5. Django 小实例S1 简易学生选课管理系统 10 老师课程业务实现

    Django 小实例S1 简易学生选课管理系统 第10节--老师课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,老师将要使 ...

  6. Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)

    Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...

  7. Django 小实例S1 简易学生选课管理系统 8 CSS样式优化

    Django 小实例S1 简易学生选课管理系统 第8节--CSS样式优化 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 前面的几节下来,用户模块基 ...

  8. Django 小实例S1 简易学生选课管理系统 7 修改个人信息

    Django 小实例S1 简易学生选课管理系统 第7节--修改个人信息 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 用户模块除了注册登录之外,还 ...

  9. Django 小实例S1 简易学生选课管理系统 6 实现登录逻辑

    Django 小实例S1 简易学生选课管理系统 第6节--实现登录逻辑 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 业务逻辑 本教程第四节里 ...

  10. Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置

    Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...

随机推荐

  1. Jmeter4.0----录制脚本(4)

    1.前言 Jmeter录制脚本有两种方式.1.通过第三方工具录制比如:Badboy,然后转化为jmeter可用的脚本:2.使用jmeter本身自带的录制脚本功能. 对于测试小白来说可用先使用jmete ...

  2. Java8中的新特性Optional

    Optional 类是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象.Optional 是个容器:它可以保存类型T的值,或者仅仅保存 ...

  3. 看完这篇文章,我奶奶都懂了https的原理

    本文在个人技术博客同步发布,详情可猛戳 亦可扫描屏幕右方二维码关注个人公众号 Http存在的问题   上过网的朋友都知道,网络是非常不安全的.尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵 ...

  4. nginx的配置文件server_name的意义 location意义

    配置不同的域名      不同域名都可以有首地址 location   同一域名下   分发到不同的路径   或者项目

  5. Smarty中的请求变量和保留变量的使用范例

    PHP中提供的超全局数组 Smarty中对应的请求变量 $_GET               <{$smarty.get}> $_POST                         ...

  6. Hybrid app(cordova) 环境配置记录

    node版本管理 NVM 安装过程 由于最新版 node 不兼容部分功能,所以需要安装 nvm 切换 node 版本 在 https://github.com/coreybutler/nvm-wind ...

  7. nodejs 实践:express 最佳实践(七) 改造模块 connect2 解析

    nodejs 实践:express 最佳实践(七) 改造模块 connect2 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的 ...

  8. C++析构函数造成Debug Assertion Failed的问题

    昨天写了两个程序,均出现了析构函数造成Debug Assertion Failed的问题,由于是初学c++怎么想也想不通问题出在哪里.今天早上经人指点终于明白问题所在了.下面贴出代码和问题解析:(以下 ...

  9. 使Win10用户获得特殊权限以便删除相应文件(夹)

    依次访问: 本地用户和组(右击“此电脑”): 用户: 右击:当前用户名: 属性: 添加: 输入:System Managed Accounts Group: 检查名称(可选): 确定: 重启电脑. 参 ...

  10. EF生成的实体映射含义

    如图: 组合效果: LEFT JOIN 效果: this.HasOptional(t => t.子表) .WithMany(t => t.主表) .HasForeignKey(d => ...