本文介绍了【笔记】Django基础(一)相关内容,对大家解决问题具有一定的参考价值,需要的朋友们一起学习吧!

---恢复内容开始---

oldboy Django  一 关于Python框架的本质 1. HTTP协议消息的格式:

请求(request)

请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n 请求体 主要的业务逻辑 c. 字符串替换(动态的网页的本质,在服务端替换) --> 模板(特殊符号 --> 数据) 2.3 Python中 Web框架的分类

按上面三个功能划分:

框架自带a,b,c         --> Tornado 框架自带b和c,使用第三方的a  --> Django 框架自带b,使用第三方的a和c   --> Flask 二 Django的安装与配置 1. Django的官网和版本选择

Django

 

【笔记】Django基础(一)

Django的版本

 

其中,LTS版本是持续提供后续支持的版本,推荐使用。

2. Django安装 命令行安装指定版本

pip3 install django==1.11.11

==后面加版本号,否则安装的是最新版的Django。 使用清华大学的镜像源:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11

PyCharm安装

 

【笔记】Django基础(一)

Pycharm 2016.1.4 使用更高版本的pycharm时,不要勾步骤5旁边的选项。

 

3. 创建项目

命令行创建:

django-admin startproject mysite

需要将django-admin.exe所在路径加到系统环境变量中去。

pycharm创建:

File --> New project --> 左侧选Django -->

pycharm需要是专业版的,社区版的不支持创建Django

 

【笔记】Django基础(一)

pycharm中创建Django项目

 

注意:点击create后一定要选择在新窗口中打开项目

 

【笔记】Django基础(一)

项目文件目录(含APP) 什么是APP?以及为什么要用APP? 方便我们在一个大的Django项目中,管理实现不同的业务功能 另一种创建APP的方法: 命令行,在Django项目的根目录下输入:

 

python3 manage.py startapp app名字

3. 项目启动

命令行启动 在项目的根目录下(也就是有manage.py的那个目录),运行:

python3 manage.py runserver IP:端口--> 在指定的IP和端口启动 python3 manage.py runserver 端口 --> 在指定的端口启动 python3 manage.py runserver --> 默认在本机的8000端口启动

Pycharm启动 点绿色的小三角,直接可以启动Django项目(前提是小三角左边是你的Django项目名)

 

【笔记】Django基础(一)

Pycharm启动

 

4. 配置相关 项目名/settings.py文件 Templates(存放HTML文件的配置) 告诉Django去哪儿找我的HTML文件,HTML文件作为模板文件全都放在templates文件夹下面。 静态文件(css/js/图片) 静态文件保存目录的别名 STATIC_URL = '/static/' 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] 注释掉setting.py中 带有 csrf 的那一行(大概45~47行) 如果有APP的话,还需要:

 

【笔记】Django基础(一)

APP配置

 

三 Django基础之Django框架的ORM 1. ORM -- what and why

why

不同的程序员写的SQL水平参差不齐 执行效率也参差不齐 优点: 简单,不用自己写SQL语句 开发效率高 缺点: 记忆这个特殊的语法 相对于大神些的SQL语句,肯定执行效率有差距

what

python语法 --自动翻译--> SQL语句 jQuery DOM $("#d1") --自动翻译--> document.getElementById("d1")

ORM的对应关系:

类 ---> 数据表 对象 ---> 数据行 属性 ---> 字段

ORM能做的事儿

操作数据表 --> 创建表/删除表/修改表操作models.py里面的类

操作数据行 --> 数据的增删改查

不能创建数据库,自己动手创建数据库

2. 使用Django的ORM详细步骤

自己动手创建数据库create database 数据库名 default charset='utf8';

在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库) # 数据库相关的配置,项目名/settings.py文件

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型 'HOST': '127.0.0.1', # 连接数据库的地址 'PORT': 3306, # 端口 'NAME': "day61", # 数据库名称 'USER': 'root', # 用户 'PASSWORD': '123456' # 密码 } }

告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库 在项目/__init__.py文件中,写下面两句:

import pymysql # 告诉Django用pymysql来代替默认的MySQLdb pymysql.install_as_MySQLdb()

在app下面的models.py文件中定义一个类,这个类必须继承models.Model

class 类名(models.Model):     字段名 = models.字段类型(设置选项)     ......

 

【笔记】Django基础(一)

实例

 

执行两个命令 在models.py中创建类或者修改类之后需要执行下面两个命令

相当于将改动记录下来 python3 manage.py makemigrations

相当于将改动发送到数据库中执行 python3 manage.py migrate

3. ORM单表的增加和查询:

查询models.UserInfo.objects.all()

增加models.UserInfo.objects.create(name="张三")

四 应用实例

urls.py:

from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^login/', views.login), url(r'^user_list/', views.user_list), url(r'^add_user/', views.add_user), ] 1. 登录 登录注册示例 body{ background-color: #eeeeee; } #login-box{ margin-top: 100px; } 请登录 Email Password Remember me Sign in {{ error }} # 登录用的函数 def login(request): error_msg = "" if request.method == "POST": email = request.POST.get("email", None) pwd = request.POST.get("pwd", None) # print(email, pwd) if email == "banshaohuan@163.com" and pwd == "banshaohuan": return redirect("https://www.cnblogs.com/banshaohuan/") else: error_msg = "邮箱或密码错误" return render(request, "login.html", {"error":error_msg}) 2. 展示用户信息 用户列表 添加用户 用户ID 用户名 {% for user in user_list %} {{ user.id }}{{ user.name }} {% endfor %} # 展示所有用户信息列表的函数 def user_list(request): # 利用ORM去查询数据库,得到数据 ret = models.UserInfo.objects.all() return render(request, 'user_list.html', {'user_list':ret}) 3. 添加用户信息 添加用户 用户名: 提交 # 添加用户的函数 def add_user(request): if request.method == 'POST': ret = request.POST.get('username') models.UserInfo.objects.create(name=ret) return redirect('/user_list/') return render(request, 'add_user.html') 返回一些文字内容return HttpResponse('内容') 返回HTML页面return render(request, "HTML文件", {替换内容}) 重定向至其他页面return redirect(链接)

---恢复内容结束---

【笔记】Django基础(一) oldboy Django  一 关于Python框架的本质 1. HTTP协议消息的格式:

请求(request)

请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n 请求体 主要的业务逻辑 c. 字符串替换(动态的网页的本质,在服务端替换) --> 模板(特殊符号 --> 数据) 2.3 Python中 Web框架的分类

按上面三个功能划分:

框架自带a,b,c         --> Tornado 框架自带b和c,使用第三方的a  --> Django 框架自带b,使用第三方的a和c   --> Flask 二 Django的安装与配置 1. Django的官网和版本选择

Django

 

【笔记】Django基础(一)

Django的版本

 

其中,LTS版本是持续提供后续支持的版本,推荐使用。

2. Django安装 命令行安装指定版本

pip3 install django==1.11.11

==后面加版本号,否则安装的是最新版的Django。 使用清华大学的镜像源:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11

PyCharm安装

 

【笔记】Django基础(一)

Pycharm 2016.1.4 使用更高版本的pycharm时,不要勾步骤5旁边的选项。

 

3. 创建项目

命令行创建:

django-admin startproject mysite

需要将django-admin.exe所在路径加到系统环境变量中去。

pycharm创建:

File --> New project --> 左侧选Django -->

pycharm需要是专业版的,社区版的不支持创建Django

 

【笔记】Django基础(一)

pycharm中创建Django项目

 

注意:点击create后一定要选择在新窗口中打开项目

 

【笔记】Django基础(一)

项目文件目录(含APP) 什么是APP?以及为什么要用APP? 方便我们在一个大的Django项目中,管理实现不同的业务功能 另一种创建APP的方法: 命令行,在Django项目的根目录下输入:

 

python3 manage.py startapp app名字

3. 项目启动

命令行启动 在项目的根目录下(也就是有manage.py的那个目录),运行:

python3 manage.py runserver IP:端口--> 在指定的IP和端口启动 python3 manage.py runserver 端口 --> 在指定的端口启动 python3 manage.py runserver --> 默认在本机的8000端口启动

Pycharm启动 点绿色的小三角,直接可以启动Django项目(前提是小三角左边是你的Django项目名)

 

【笔记】Django基础(一)

Pycharm启动

 

4. 配置相关 项目名/settings.py文件 Templates(存放HTML文件的配置) 告诉Django去哪儿找我的HTML文件,HTML文件作为模板文件全都放在templates文件夹下面。 静态文件(css/js/图片) 静态文件保存目录的别名 STATIC_URL = '/static/' 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] 注释掉setting.py中 带有 csrf 的那一行(大概45~47行) 如果有APP的话,还需要:

 

【笔记】Django基础(一)

APP配置

 

三 Django基础之Django框架的ORM 1. ORM -- what and why

why

不同的程序员写的SQL水平参差不齐 执行效率也参差不齐 优点: 简单,不用自己写SQL语句 开发效率高 缺点: 记忆这个特殊的语法 相对于大神些的SQL语句,肯定执行效率有差距

what

python语法 --自动翻译--> SQL语句 jQuery DOM $("#d1") --自动翻译--> document.getElementById("d1")

ORM的对应关系:

类 ---> 数据表 对象 ---> 数据行 属性 ---> 字段

ORM能做的事儿

操作数据表 --> 创建表/删除表/修改表操作models.py里面的类

操作数据行 --> 数据的增删改查

不能创建数据库,自己动手创建数据库

2. 使用Django的ORM详细步骤

自己动手创建数据库create database 数据库名 default charset='utf8';

在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库) # 数据库相关的配置,项目名/settings.py文件

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型 'HOST': '127.0.0.1', # 连接数据库的地址 'PORT': 3306, # 端口 'NAME': "day61", # 数据库名称 'USER': 'root', # 用户 'PASSWORD': '123456' # 密码 } }

告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库 在项目/__init__.py文件中,写下面两句:

import pymysql # 告诉Django用pymysql来代替默认的MySQLdb pymysql.install_as_MySQLdb()

在app下面的models.py文件中定义一个类,这个类必须继承models.Model

class 类名(models.Model):     字段名 = models.字段类型(设置选项)     ......

 

【笔记】Django基础(一)

实例

 

执行两个命令 在models.py中创建类或者修改类之后需要执行下面两个命令

相当于将改动记录下来 python3 manage.py makemigrations

相当于将改动发送到数据库中执行 python3 manage.py migrate

3. ORM单表的增加和查询:

查询models.UserInfo.objects.all()

增加models.UserInfo.objects.create(name="张三")

四 应用实例

urls.py:

from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^login/', views.login), url(r'^user_list/', views.user_list), url(r'^add_user/', views.add_user), ] 1. 登录 登录注册示例 body{ background-color: #eeeeee; } #login-box{ margin-top: 100px; } 请登录 Email Password Remember me Sign in {{ error }} # 登录用的函数 def login(request): error_msg = "" if request.method == "POST": email = request.POST.get("email", None) pwd = request.POST.get("pwd", None) # print(email, pwd) if email == "banshaohuan@163.com" and pwd == "banshaohuan": return redirect("https://www.cnblogs.com/banshaohuan/") else: error_msg = "邮箱或密码错误" return render(request, "login.html", {"error":error_msg}) 2. 展示用户信息 用户列表 添加用户 用户ID 用户名 {% for user in user_list %} {{ user.id }}{{ user.name }} {% endfor %} # 展示所有用户信息列表的函数 def user_list(request): # 利用ORM去查询数据库,得到数据 ret = models.UserInfo.objects.all() return render(request, 'user_list.html', {'user_list':ret}) 3. 添加用户信息 添加用户 用户名: 提交 # 添加用户的函数 def add_user(request): if request.method == 'POST': ret = request.POST.get('username') models.UserInfo.objects.create(name=ret) return redirect('/user_list/') return render(request, 'add_user.html') 返回一些文字内容return HttpResponse('内容') 返回HTML页面return render(request, "HTML文件", {替换内容}) 重定向至其他页面return redirect(链接)

【笔记】Django基础(一)

 

原文链接:https://www.cnblogs.com/banshaohuan/p/9253411.html

这篇关于【笔记】Django基础(一)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!