一、Django安装

pip3 install django==1.11.11

PyCharm安装的时候:

 

 

二. 新建Django项目
命令行创建:
django-admin startproject mysite
pycharm创建:
1. File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe

三. 设置Django项目:
1. settings.py
1. 配置HTML文件存放的位置

 


2. 配置静态文件存放的位置

 

 

四. Django项目的启动:
1. 命令行启动
在项目的根目录下(也就是有manage.py的那个目录),运行:
python3 manage.py runserver IP:端口--> 在指定的IP和端口启动
python3 manage.py runserver 端口 --> 在指定的端口启动
python3 manage.py runserver --> 默认在本机的8000端口启动

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

2. 配置相关 项目名/settings.py文件
1. Templates(存放HTML文件的配置) <-- 告诉Django去哪儿找我的HTML文件

2. 静态文件(css/js/图片)
# 静态文件保存目录的别名
STATIC_URL = '/static/'

# 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]

 


3. 注释掉setting.py中 带有 csrf 的那一行

 

 

 GET请求和POST请求
GET请求:
1. 浏览器请求一个页面
2. 搜索引擎检索关键字的时候

POST请求:
1. 浏览器向服务端提交数据,比如登录/注册等

# 登录的函数
def login(request):
    error_msg = ""
    if request.method == "POST":  # 这里必须是大写的
        # 如果你是POST请求,我就取出提交的数据,做登录判断
        print(request.POST["email"])
        email = request.POST.get("email", None)
        pwd = request.POST.get("pwd", None)
        print(email, pwd)
        # 做是否登陆成功的判断
        if email == "weihu@163.com" and pwd == "weihu123":
            # 登录成功
            # 回复一个特殊的响应,这个响应会让用户的浏览器请求指定的URL
            return redirect("http://www.luffycity.com")
        else:
            # 登录失败
            error_msg = "邮箱或密码错误"
    # 不是POST请求就走下面这一句
    return render(request, "login.html", {"error": error_msg})


# 展示所有的用户的函数
def user_list(request):
    # 去数据库中查询所有的用户
    # 利用ORM这个工具去查询数据库,不用自己去查询
    ret = models.UserInfo.objects.all()  # [UserInfo Object, UserInfo Object]
    print(ret[0].id, ret[0].name)
    # 打开user_list.html文件,
    return render(request, "user_list.html", {"user_list": ret})
    # return HttpResponse("别哭了!")


# 添加用户的函数
def add_user(request):
    if request.method == "POST":
        # 用户填写了新的用户名,并发送了POST请求过来
        new_name = request.POST.get("username", None)
        # 去数据库中新创建一条用户记录
        models.UserInfo.objects.create(name=new_name)
        # return HttpResponse("添加成功!")
        # 添加成功后直接跳转到用户列表页
        return redirect("/user_list/")

    # 第一个请求页面的时候,就返回一个页面,页面上有两个框让用户填写
    return render(request, "add_user.html")

 

Django中的APP:

什么是APP?以及为什么要用APP?

project --> 项目 (老男孩教育大学校)

APP --> 应用 (Linux学院/Python学院/大数据学院/Java学院)

方便我们在一个大的Django项目中,管理实现不同的业务功能.

1. 创建APP的命令
1. 命令行,在Django项目的根目录输入:
python3 manage.py startapp app名字

ORM

import pymysql
pymysql.connect(
...
...
)

1. 不同的程序员写的SQL水平参差不齐
2. 执行效率也参差不齐

python语法 --自动翻译--> SQL语句

jQuery DOM
$("#d1") --自动翻译--> document.getElementById("d1")

ORM:
优点:
1. 简单,不用自己写SQL语句
2. 开发效率高
缺点:
1. 记忆你这个特殊的语法
2. 相对于大神些的SQL语句,肯定执行效率有差距

ORM的对应关系:

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

 

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': '123456' # 密码
}
}

 


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):
...

 


执行两个命令

1. python3 manage.py makemigrations
2. python3 manage.py migrate

 


ORM单表的增加和查询:
1. 查询所有

models.UserInfo.objects.all()

 



2. 增加

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