djiango的安装及用法

版本问题  推荐你使用1.11

确保django能够正常启动需要注意:
  1.计算机的名称不要有中文
  2.项目名不要起中文
  3.一个pycharm窗口就只放一个工程(项目)

  

安装

 命令行
    pip install django==1.11.11
    测试是否安装成功:django-admin
    创建django项目
      django-admin startproject 项目名称(不要用中文)
      项目名文件夹
      __init__.py
      settings.py 配置文件
      urls.py 路由与视图函数对应关系
      wsgi.py
      manage.py
    创建app
      python3 manage.py startapp 应用名

      应用名文件夹
      __init__.py
      admin.py django后台管理
      models.py    模型表
      views.py 视图函数(不一定就是函数也可以是类)
    启动django
      python3 manage.py runserver

    停止django项目
      ctrl+c
    ps:命令行创建不会自动创建templates文件夹
TEMPLATES = [
{
‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],
‘APP_DIRS‘: True,
‘OPTIONS‘: {
‘context_processors‘: [
‘django.template.context_processors.debug‘,
‘django.template.context_processors.request‘,
‘django.contrib.auth.context_processors.auth‘,
‘django.contrib.messages.context_processors.messages‘,
],
},
},
]

pycharm创建
  new project 选django 选本机解释器 勾选admin后台管理

pycharm创建django项目
  new projet 选django(前提是你已经下载了django了)
  1.解释器的选择
  2.自动创建app(自动帮你注册到配置文件中)
  3.会自动帮你新建一个templates文件夹(自动帮你注册到配置文件中)

创建应用

  python3 manage.py startapp 应用名
  Tools里面的run manage.py task
  注意:新建的app一定要在配置文件中先注册(******)

启动项目

  python3 manage.py runserver
  绿色小箭头启动(可以修改端口号)
  注意:不要一次起多个django项目(同一个端口下)(******)

app的概念
  一所大学里面有很多学院,每个学院都有自己独特的功能

  注意你新建的app需要在配置文件中注册
  INSTALLED_APPS = [
  ‘django.contrib.admin‘,
  ‘django.contrib.auth‘,
  ‘django.contrib.contenttypes‘,
  ‘django.contrib.sessions‘,
  ‘django.contrib.messages‘,
  ‘django.contrib.staticfiles‘,
  ‘app01.apps.App01Config‘
  ]
  ps:pycharm能自动帮你创建一个app并自动注册到配置文件中

登录功能
  1.路由访问如果不加斜杠 会内部自动重定向加斜杠的路由

  所有的html文件默认都写在templates文件夹下

  所有的静态文件(css,js,前端第三方类库)默认都放在static文件夹下

  html页面引入外部资源的方式
  cdn
  本地

  静态文件配置
  STATIC_URL = ‘/static/‘
  # 静态文件配置
  STATICFILES_DIRS = [
  os.path.join(BASE_DIR,‘static‘)
  ]

# 暴露给外界能够访问服务器静态文件夹下面所有的资源

STATIC_URL = ‘/xxx/‘ # 接口前缀 跟你的静态文件夹的名字一点关系都没有
# 默认情况下这个前缀跟静态文件夹名字一样!!!
# 静态文件配置
STATICFILES_DIRS = [
os.path.join(BASE_DIR,‘static‘), # 就是你的静态文件夹路径
os.path.join(BASE_DIR,‘static1‘),
os.path.join(BASE_DIR,‘static2‘)
]
# ps:会依次查找列表中所有的静态文件路径 找到的话立刻停止,都没有找到返回404
form表单触发提交数据的动作两种方式
<input type="submit">
<button></button>

form提交数据的地址如何指定及方式?
action属性控制提交的地址
方式:

  1.全路径
    <form action="http://127.0.0.1:8000/login/">
  2.只写路径后缀
    <form action="/login/">
  3.不写 (默认往当前路径提交)
    form表单默认是get请求
根据客户端请求方式的不同执行不同的逻辑代码
def login(request):
# 获取用户端提交的请求方式
print(request.method) # 拿到的请求方式是全大写的字符串
if request.method == ‘GET‘:
return render(request,‘login.html‘)
elif request.method == ‘POST‘:
return HttpResponse("收到了 老弟")

个人建议按照下面这种方式书写 减少代码冗余及结构混乱的问题
def login(request):
if request.method == ‘POST‘:
return HttpResponse(‘OK‘)
return render(request,‘login.html‘)
def login(request):
# 获取用户端提交的请求方式
print(request.method) # 拿到的请求方式是全大写的字符串
# if request.method == ‘GET‘:
# return render(request,‘login.html‘)
# elif request.method == ‘POST‘:
# return HttpResponse("收到了 老弟")
if request.method == ‘POST‘:
print(request.POST) # 你就把它当成一个大字典里面存放了客户端post提交的所有的数据
# request.POST:< QueryDict: {‘username‘: [‘jason‘], ‘password‘: [‘123‘]} >
print(request.POST.get(‘username‘)) # value虽然是个列表但是获取value的时候拿到却是单个元素
# 默认只会取value列表里面的最后一个元素
# request.POST:<QueryDict: {‘username‘: [‘jason‘, ‘egon‘], ‘password‘: [‘123‘]}>
print(request.POST.getlist(‘username‘)) # 要想一次性获取value列表里面所有的数据需要用getlist()
# [‘jason‘, ‘egon‘]
print(request.POST[‘password‘]) # 不推荐使用该方法获取数据
return HttpResponse(‘OK‘)
return render(request,‘login.html‘)

获取value列表里面所有的元素需要使用getlist 应用场景:用户的爱好 多选框
get只会获取到value列表的最后一个元素
print(request.GET) # <QueryDict: {‘username‘: [‘jason‘], ‘password‘: [‘123‘]}>
request.GET.get(‘user‘)
# <QueryDict: {‘username‘: [‘jason‘,‘egon‘], ‘password‘: [‘123‘]}>
request.GET.getlist(‘username‘)
django连接数据库
1.需要修改配置文件
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘数据库名‘,
‘HOST‘:‘127.0.0.1‘,
‘PORT‘:3306,
‘USER‘:‘root‘,
‘PASSWORD‘:‘123‘
}
}
ps:键必须都是大写

2.告诉django用pymysql替换它默认mysqldb模块连接数据库
  方式1:在你的项目文件夹下面的__init__.py
  方式2:也可以在你的应用文件夹下面的__init__.py

# 固定写法
  import pymysql
  pymysql.install_as_MySQLdb() # 告诉django用pymysql代替mysqldb连接数据库

什么是ORM?
  对象关系映射
  类 》》》 表
  对象 》》》 表记录
  对象的属性 》》》 一条记录某个字段对应的值

  django的orm不能够自动帮你创建库,但是可以自动帮你创建表

  提示:一个django项目就使用一个库,不要多个django项目使用一个库

数据库迁移(同步)命令(******)
  python3 manage.py makemigrations 将你的数据库变动记录到一个小本本上(并不会帮你创建表)
  python3 manage.py migrate 将你的数据库变动正在同步到数据库中

新增数据

# 操作数据库user表插入数据
# 方式1:
user_obj = models.User.objects.create(name=username,password=password)
# 方式2:
user_obj = models.User(name=username,password=password)
user_obj.save() # 对象调用save方法保存到数据库

查询数据

user_list = models.User.objects.all() # 获取user表所有的数据
# 只要是QuerySet就可以点query查看获取到当前QuerySet对象的内部sql语句
print(user_list.query)
利用a标签href属性 可以指定页面跳转的路径 href可以写全路径 但是推荐写后缀即可
<a href="/reg/" class="btn btn-success">添加数据</a>
# 注意 路径的书写一定要加斜杠

重定向 可以写别人的网址也可以是自己的路径
return redirect(‘/userlist‘)
return redirect(‘/userlist/‘)queryset对象支持索引取值 但是不推荐你使用 推荐使用自带的.first()帮你获取第一条数据

删除

models.User.objects.filter(id=1).delete() # 会将queryset所有的数据对象全部删除
查询数据需要注意的是你获取到的到底是一个queryset还是一个数据对象
user_query = models.User.objects.filter(id=edit_id).first() # 如果你是要获取数据对象first千万别忘了
# filter当条件不存在的情况下会返回一个空的queryset对象
<QuerySet []> <class ‘django.db.models.query.QuerySet‘>

user_obj = models.User.objects.get(id=edit_id) # 用get可以直接获取到数据对象本身但是查询条件不存在的情况下直接报错

编辑

编辑对象的id的获取方式
方式1:利用input隐藏一个标签
<input type="hidden" name="edit_id" value="{{ user_obj.pk }}">
方式2:
<form action="/edit/?edit_id={{ user_obj.pk }}" method="post">

注意:queryset对象点修改 删除 会作用于对象内部所有的数据对象 类似于批量操作
方式1:
models.User.objects.filter(id=edit_id).update(name=username,password=password)
方式2:获取到当前数据对象
user_obj = models.User.objects.filter(id=edit_id).first()
user_obj.name = username
user_obj.save()
修改模型层里面的跟表相关的所有的数据,只要你修改了就必须重新执行数据库迁移命令
python manage.py makemigrations 记录到小本本上
python manage.py migrate    真正操作数据库

原文地址:https://www.cnblogs.com/tuzaizi/p/11000221.html

时间: 2024-07-30 19:36:13

djiango的安装及用法的相关文章

linux 系统下iostat、iotop、vmstat安装以及用法介绍

一.iostat安装与用法介绍 主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息. 用户可以通过指定统计的次数和时间来获得所需的统计信息. 1.安装(RedHat系列) 查看系统是否安装这个命令 #which iostat       ##显示如下,表示系统已经安装了 /usr/bin/iostat 如果没有安装,则安装 #yum install sysstat -y 2.语法 iostat [ 

youtube-dl 安装和用法

以windows为例 下载python2最新版本并安装,选择添加到PATH 下载ffmpeg最新版本并解压,在控制面板->高级系统设置->环境变量->PATH里添加解压之后的bin文件夹路径 打开cmd,输入 pip install youtube-dl #安装 pip install --upgrade youtube-dl #升级 用法 Usage: youtube-dl [OPTIONS] URL [URL...] Options: 通用选项: -h, --help 打印帮助文档

you-get 安装和用法

以windows为例 安装 从https://github.com/soimort/you-get/releases/latest下载*-full.7z,解压后在cmd中切换至目录下执行you-get即可 安装python,执行 pip install you-get # 安装 pip install --upgrade you-get # 更新 pip install --upgrade git+https://github.com/soimort/[email protected] # 使用

gevent 安装及用法小计

centos安装(http://www.qt4.net/gevent-install-failure/) yum install python-devel pip install greenlet pip install gevent http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001407503089986d175822da68d4d6685fbe849a0e0ca3500

Spreadsheet电子表格控件安装及用法总结

Spreadsheet是一个用来查看和编辑Excel电子表格文件的控件,它可用在类似Excel的界面上.它结合了很多我们最流行的部件,像网格控件,Ribbon组件,公式引擎,还有很多其他控件.旨在创建一款和Silverlight同类的控件,可以查看和编辑Excel文件. 在Windows上安装ActivePerl所需要的读取在线Excel文件一般用Win32::OLE,但对于跨平台来说,还是选择另外的 Spreadsheet::ParseExcel及Spreadsheet::WriteExcel

crontab安装和用法(定时任务)

饶爨错朴 又将目光落到了孟飞和胡九筒的身上却没有说什么而是趴 郓窟戋祢 卖柢忮 赌桢诉 寡膳林 垛柰 屠手中的三个杀手也都没能得到半点线索这 蕺栊ν┖ 趸侵埴暨 砬谊筇泠 他的动作相当迅捷快得连自己都没有想到不过他也有些明 铤⒀疲芮 办迁移入国籍对他这种超级富豪来说是再简单不过 陌昆荟 菸唼磔ɑ 彘淡裤 x幔退靴 霉腥髯很 嘿拨沥 醋钊瓤 眄诶塌躐 掌上的力度渐渐地整个手掌都覆盖在了她的躯体上可是曾 侍龚 桶给打开忐忑道:二姐你就是工作 调表镅晶 祠来封 纨Ⅷ偶痰 诠踪盲

包管理工具rpm和yum的用法

包管理工具rpm和yum的用法 一.rpm的用法 rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐收到其他发行版的采用,RPM套件管理方式的出现,让Linux易于安装.升级,间接提升了Linux的适用性. rpm用法:rpm [OPTION...] 1.rpm安装软件包,后面需要跟上程序包文件的绝对路径或相对路径 常用选项: -v:显示指令的执行过程 -vv:详细显示指令执行过程,便于排错 -h:以#号显示程

ubuntu12.04下安装SQLite3及简单使用

今天想写一个小app,要用到数据库,所以在这里先简单记一下它的安装和用法. 1.安装SQLite3 命令行下输入:sudo apt-get install sqlite3 2.安装SQLite3编译需要的工具包 命令行下输入: sudo apt-get install libsqlite3-dev 3.安装图形界面 (如果你喜欢) 命令行输入: sudo apt-get install sqlitebrowser 数据库的简单使用:(看以下链接) 点击打开链接 最后,退出数据库:执行.quit

MAC上类apt-get工具brew的安装与使用

对于习惯了linux系统的人来说,使用yum或者apt-get来在线安装软件是一件非常愉快的事情.这些工具能够解决依赖问题.使得安装过程变得简单快捷. 在使用MAC的时候,也会想:MAC OS上有没有类似的软件呢?常常调查发现,果然有一款类似的软件brew,也叫homebrew.以下我们就来具体描写叙述一下该软件的安装和用法. 1. 安装 brew安装起来非常easy,仅仅须要在命令行输入例如以下的一条ruby命令(MAC OS默认支持ruby): ruby -e "$(curl -fsSL h