初始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. 紫书140例题6-2 铁轨&&UVa514

    某城市有一个火车站,铁轨铺设如图6-1所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨,并驶出车站.例如,出栈顺序(5 4 1 2 ...

  2. namedJDBC查询

    import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.spring ...

  3. jQuery解决ajax请求的跨域问题

    这两天工作中频繁的遇到JS的跨域问题,都通过绕开ajax请求的方式.特地百度了一下,把跨域问题解决了.在这分析一下 首先贴上js的页面代码: <html> <head> < ...

  4. dot watch

    dot watch+vs code提升asp.net core开发效率 在园子中,已经又前辈介绍过dotnet watch的用法,但是是基于asp.net core 1.0的较老版本来讲解的,在asp ...

  5. Activemq和Rabbitmq端口冲突

    端口5672被占用了!使用cmd命令行查到被erl.exe占用了,想到这不是RabbitMQ的服务嘛 netstat -aon | findstr "5672"tasklist | ...

  6. left join \ right join \ inner join 详解

    left join 和 left outer join 的区别 通俗的讲:   A   left   join   B   的连接的记录数与A表的记录数同   A   right   join   B ...

  7. plsql连接远程数据库快捷方式

    不用修改任何文件就可以直接连接远程数据库

  8. c#的Lambda 表达式

    首先看官方的说法: Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数. 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数. Lambda 表达式 ...

  9. Spring Cloud--搭建Eureka注册中心服务

    使用RestTemplate远程调用服务的弊端: Eureka注册中心: Eureka原理: 搭建Eureka服务 引pom 启动类: 启动类上要加上@EnableEurekaServer注解: 配置 ...

  10. POJA Star not a Tree?(模拟退火)

    题意 题目链接 给出$n$个点,求出一个点使得到各个点的距离之和最小,距离为欧几里得距离 Sol 模拟退火真是玄学,我退了一上午,最后把exp函数去了就A了. 后来改了改,发现是大小符号的问题.. 但 ...