python--Django 01 安装以及初识Django项目开发
思考:点击
1 Django安装
1.1 Django版本介绍
安装版本:注意安装 LTS版(Long Team Support)
Django包来源:因为连接国外服务器下载经常会超时(timeout),所以可以使用国内的一些“源”下载Django:
常见的国内pip源:
- 阿里云 Simple Index
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣(douban) Simple Index
- 清华大学 Simple Index
- 中国科学技术大学 Simple Index
使用国内pip源的安装方法:
#下载方法 pip install django==2.2.20 -i http://pypi.douban.com/simple
如果有以下报错:
使用命令:
pip install django -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
国内常见开源镜像站:点击
1.2 Django下载
Django官网下载页面
1.3 Django安装步骤
步骤1:查询已安装的python版本,python安装教程 点击 ,django和python对应版本查询 点击。
步骤2:查询pip版本 更新到最新版本。
pip -V
python:pip命令使用
pip命令安装库
pip install 库名
使用pip命令更新库
pip install --upgrade 库名
pip更新
Python -m pip install --upgrade pip
步骤3:安装Django
pip3 install Django==1.11.11 (如果不写版本,会默认下载最新版本)
# 卸载Django用 pip3 uninstall Django
步骤3:查看安装结果
Django安装成功!
步骤4:测试安装结果
测试安装结果方法如下:
使用“pip list”可以查看当前存在的包
步骤5:环境变量确认
1.4 Django安装常见问题
Django安装常见问题及其处理方式 点击
python安装教程 点击
python下载(找Windows x86-64 executable installer文件) 点击
django下载 点击
2 Django程序示例
在pycharm中创建Django的程序的完整示例过程 点击 。
3 Django项目框架简介
3.1 Django基础必会三件套
from django.shortcuts import HttpResponse, render, redirect
- HttpResponse 可以返回一个指定的字符串
- render 可以返回一个HTML文件
- redirect 可以实现跳转(重定向)
3.1.1 HttpResponse
内部传入一个字符串参数,返回给浏览器。
例如:
def index(request):# 业务逻辑代码return HttpResponse("OK")
3.1.2 render
除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
将数据填充进模板文件,最后把结果返回给浏览器。(类似于我们上面用到的jinja2)
例如:
打开文件,读取内容,按照响应格式返回
def index(request):# 业务逻辑代码return render(request, "index.html")
打开文件,读取内容,替换特殊符号,按照响应格式返回
def index(request):# 业务逻辑代码return render(request, "index.html", {"name": "tom", "hobby": ["烫头", "泡吧"]})
3.1.3 redirect
接受一个URL参数,表示跳转到指定的URL。
例如:
def index(request):# 业务逻辑代码return redirect("/home") # "/"代表地址+端口, "home"代表"url.py"文件中的路由地址
3.2 request相关属性
以上三件套的方法中都有用到一个参数request,request 的常用属性如下:
- request.method:返回的是请求的方法(全大写) GET/POST 例如:request.method==‘POST’
- request.GET:取得是URL里面的参数,类似于字典的数据结构
- request.POST:取到post提交的数据,类似于字典的数据结构
3.3 Django项目模块划分
Django项目app >>>在项目中又分了以及python包,不同的功能放到不同的包里面.
1. 创建app
python manage.py startapp myapp # myapp是自己创建的app
2.告诉django自己创建了一个app
在settings.py文件中找那个INSTALLED_APPS中添加新创建的app
3.4 模板语言
{ { name } } { 'name' : 'tom'}
详细学习 点击
3.5 APP(项目中的包)
手动创建的方法如下:
3.5.1 Django中创建app
python manage.py startapp app01
3.5.2 注册到Django中
settings.py中的INSTALLED_APPS = ['app名', ]
3.5 程序连mysql
3.5.1 使用pymysql模块
使用pyMsql模块和数据库通信的过程:
过程示例 点击
pip install pymysql # 安装
- 1.导入pymysql模块
- 2.创建连接
- 3.获取执行命令的游标
- 4.用游标去执行sql语句
- 5 获取sql的执行结果
- 6.关闭游标
- 7 关闭连接
明显以上过程很麻烦,而且需要项目人员都会熟练数据库操作!有没有简单的方法呢?
3.5.2 使用SQL工具ORM
注意:一旦使用ORM操作数据库,就不能再用其他方式操作数据库。否则其他方式操作后ORM工具将无法使用。
ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。
ORM的实现思想:
为了方便开发人员以面向对象的思想来实现对数据库的操作,将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。
ORM的优缺点:
优点:不用直接写SQL语句,开发效率高
缺点:执行效率低
具体参考下图:
常用的ORM框架
(1)Hibernate全自动需要些hql语句
(2)iBATIS半自动自己写sql语句,可操作性强,小巧
(3)EclipseLink 一个可扩展的支持JPA的ORM框架,供强大的缓存功能,缓存支持集群。
(4)Apache OJB等等
3.5.3 Django项目中的ORM使用
Django项目中ORM的使用步骤如下:
1.手动创建数据库
2.告诉django连接数据库
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 连接数据库的类型'NAME': 'mysite', # 数据库名'HOST': '127.0.0.1', # 数据库主机地址'PORT': 3306, # 数据库的端口'USER': 'root','PASSWORD': '',}}
3.用什么连数据库
利用第三方的包,比如第三方包:pymysql和MySQLdb
MYsqldb是django自带的连接数据库的模块, 但是不支持python3,处理方法:告诉Django用pymysql模块代替默认的MySQLdb去连接MySQL数据库,在和settings.py同级的__init__.py文件,写上:
import pymysql pymysql.install_as_MySQLdb()
4. 在app/models.py的文件中创建数据表对应的类
类必须继承models.Model,类的属性就是数据库中的字段
5. 写好代码后在Terminal中执行两个个命令,每次对数据进行变更都要执行这两个命令
- python manage.py makemigrations --> 找个小本本把models.py的变更记录一下
- python manage.py migrate --> 把上面的变更记录翻译成SQL语句,去数据库执行
如果运行python manage.py makemigrations后报错如下:
ecuted_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'**解决方法:**C:\Program Files (x86)\Python37-32\Lib\site-packages\django\db\backends\mysql\operations.py
将decode改为encode即可解决
3.4.4ORM查询
增删改查等详细操作 点击ORM版增删改查
User.objects.filter(email='', pwd='')
python--Django 01 安装以及初识Django项目开发相关推荐
- Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数
Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...
- 如何用 Python 进行基于深度学习的计算机视觉项目开发?
令人惊喜的"智能"年代 深度学习有着广阔的前景 我们正处在一个"智能"的年代,比如智能手机中的语音助手.机器翻译和人脸识别:战胜过日本将棋冠军.国际象棋冠军, ...
- [Django青铜修炼手册] 初识Django
Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T.在学 ...
- python学习框架图-Python学习—框架篇之初识Django
创建个人信息 姓名 年龄 性别 邮箱 信息展示 姓名 年龄 性别 邮箱 {% for i in user_list %} {{ i.username }} {{ i.age }} {{ i.sex } ...
- 怎么检查python是否安装成功-检查python以及django是否安装配置成功
首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...
- 浅谈web开发以及django的安装和入门
浅谈web开发 1.B/S和C/S结构 B/S:浏览器与服务器进行的交互模式(不需要官方下载的,一夫多妻制) C/S:客户机与服务器进项的交互模式(必须官方下载的,一夫一妻制 2.MVC和MVT MV ...
- Django项目开发——002架构梳理
python三个开发框架: django tornado flask MVC #开源高级web开发框架,使用python #快速开发: ORM 构建数据库,方法简洁. #内置应用:admin,auth ...
- 轩小陌的Python笔记-day15 内置模块(剩余)和开发规范
day15 内置模块和开发规范 目标:掌握常见的内置模块的使用及了解软件开发的规范. 今日概要: 内置模块 json time datetime re 开发规范 主文件 配置文件 数据 附件 业务代码 ...
- Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
Django 官网 有详细的使用说明,这里只做简单记录. 1.起因 Java 项目用到了 Python 的类库,使用jython-standalone在 idea 里可以调用,但是部署时模块无法找到, ...
最新文章
- excel换行按什么键_电脑结束任务按什么键
- miniob :相关环境配置
- android media apex_APEX英雄主播即将登陆时代广场?人气十强介绍!
- execve系统调用_Linux操作系统中的namespace是个什么鬼
- 剑指offer(1)
- 零基础学python图文版-教到你会为止的Python入门课程即将开班
- springboot map数据类型注入_Spring Boot(五):春眠不觉晓,Mybatis知多少
- ansible 通过加密码来批量管理主机及管理Windows主机
- 天正电气插入图块非常小与比例不符合
- 服务器共享文件夹设置特殊权限,资料共享服务器权限设置、服务器共享盘设置权限、设置局域网共享文件夹访问权限的方法...
- 用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图...
- linux下几款可用网盘对比
- java调用rapidminer_基于RapidMiner开发问题和解决
- Mac上的Redis客户端 G-dis
- JRE和JDK有什么区别,我们为什么使用JDK?
- 盘点北京周边最适合爬的10座山
- 权值线段树+动态开点(学习小结)
- 17. CTF综合靶机渗透(十)
- Zookeeper报错Will not attempt to authenticate using SASL解决办法
- Qt 设置只能输入英文和数字
热门文章
- springboot+nodejs+vue+elementui会议室考勤签到管理系统java
- Java游戏编程初步
- 最全哈夫曼树哈夫曼编码讲解,兄弟你值得拥有
- 切勿忽视晶振的选型设计!
- 苹果电脑修改用户名方法
- 如何查看网站的收录与排名
- 服务器中所有文件夹变只读,我的电脑里全部文件夹属性都变成只读了改也改不过来...
- ae使用计算机不支持的文字,AE软件使用字体出现错误83 ::2如何解决?
- Docker——docker-volume原理
- Android中电池信息(Battery information)的取得