django 一
- 用Django
新建django项目
django-admin startproject s10day60
python3 manage.py runserver 8001
python3 manage.py startapp app01
配置Django项目
- setting.py文件
- templates文件夹的位置
- 静态文件
- STATIC_URL-->静态文件夹的别名(在HTML文件中用的)
- STATICFILES_DIRS-->静态文件夹的真正路径
- 注释掉csrf相关的中间件
- Django项目连接数据库
Django WEB请求流程(简版)
1. 启动Django项目,等待用户连接
2. 浏览器在地址烂输入URL,来连接我的Django项目
3. 在urls.py中找路径和函数的对应关系
4. 执行对应的函数
views.py
1. 专门用来定义处理请求的函数
1. 基本必备三件套
from django.shrtcuts import HttpResponse,render,redirect
1. HttpResponse("要返回的内容")--》用于直接返回数据
2.render(request,"html文件",{"k1":v1})-->
返回一个HtmL文件或者打开文件进行字符串替换
3.redirect("URL")
告诉用户的浏览器去访问其他的URL
2.request相关
1.request.method ->查看请求的方法
2.request.POST ->获取POST请求的数据
ORM使用
1.什么是ORM?
是一种变成的方法论(模型),和语言无关。(其他的语言也有类似的实现)
2.ORM的本质:
类 --> 数据表
对象 --> 数据行
属性 --> 字段
按照规定的语法写,自动翻译成对应的SQL语句
3.ORM的功能
ORM操作数据表
ORM操作数据行
4.Django里的ORM的使用
1.手动创建数据库
2.在setting.py里面,配置数据库的连接信息
3.在项目/__init__.py告诉Django用pymysql模块代替MySQLdb来连接数据库
import pymysql
pymysql.install_as_MySQLdb()
4.在app/models.py定义类
# 出版社
class Publisher(models.Model):
id = models.AutoField(primary_key=True) # 自增的ID主键
# 创建一个varchar(64)的唯一不为空的字符段
name = models.CharField(max_length=64,null=False,unique=True)
5.执行两个命令
1. python3 manage.py makemigrations -->
2. python3 manage.py migrate
-
form表单往后端提交数据需要注意哪三点:()
1.form不是from,所有获取用户输入的标签都应该放在form里面
2.action属性控制往哪提交,method一般都设置成post
3.提交按钮必须是type=submit,不能是别的类型 -
GET请求和POST请求
GET请求:
1.浏览器请求一个页面
2.搜索引擎检索关键字的时候
POST请求:
1.浏览器向服务端提交数据,比如登录/注册等 -
Django中的APP:
project --》项目 (老男孩教育大学校)
APP --》应用 (Linux学院/Python学院/大数据学院/Java学院)
1.创建APP的命令
python3 manage.py startapp app01
- ORM
import pymysql
pymysql.connect(
...
...
)
1.不同的程序员写的SQL水平参差不齐
2.执行效率也参差不齐
python语言 --自动翻译--> SQL语言
jQuery
$("#d1") --自动翻译--> DOM document.getElementById("d1")
优点:
1.简单,不用自己写SQL语句
2.开发效率高
缺点:
1.记忆你这个特殊的语法
2.相对于大神写的SQL语句,肯定执行效率有差距
- 类 ---》 数据表
- 对象 ---》 数据行
- 属性 ---》 字段
ORM能做的事:
1.操作数据库 --》创建表/删除表/修改表
操作models.py里面的类
2.操作数据行 --》数据的增删改查
不能创建数据库,自己动手创建数据库
使用Django的ORM详细步骤:
1.自己动手创建数据库
```
create database 数据库名;
```
2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)
```
# 数据库相关配置
DATABASES = {
'default': {
# 连接的数据库类型
'ENGINE': 'django.db.backends.mysql',
# 连接数据库的地址
'HOST':'127.0.0.1',
# 端口
'PORT':3306,
# 数据库名称
'NAME': "day61",
# 用户
'USER':'root',
# 密码
'PASSWORD':'root'
}
}
```
3.告诉Django用pymysql代替默认的MySQLDB连接MySQl数据库
在项目/__init__.py文件中,写入下面两句:
import pymysql
#告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()
4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model
class 类名(models.Model):
...
5.执行两个命令
1.python3 mange.py makemigrations
2.python3 mange.py migrate
大道理谁都懂,鸡汤也听过,可我们为什么还是过不好这一生。