Django基础

三板斧的使用

三个方法

HttpResponse

render

redirect

frpm django.shortcuts import render,HttpResponse,redirect

HttpResponse       返回字符串类型的数据
render             返回HTML页面并且支持传值
redirect           重定向

全局配置文件
SECRET_KEY = 'w1iqa7+d17hb5=t8p640lxp8%nl3)t4fcmjk+@og8(4n*&-xmr'
# 加密的数据,盐


DEBUG = True #调试模式,改为False,页面不会报错
ALLOWED_HOSTS = [‘*’]

INSTALLED_APPS:"""注册应用"""


ROOT_URLCONF:路径,写的路由就去这个路径去寻找


TEMPLATES: 模版
WSGI_APPLICATION:wsigref----上线之后uwigaref


DATABASES:关于mysql数据库


AUTH_PASSWORD_VALIDATORS:密码的认校验


LANGUAGE_CODE:语言---修改中文zh-hanzi


TIME_ZONE = 'Asia/Shanghai'市区

静态文件的配置

静态文件:
类似于HTML文件。css文件,js、文件,图片或第三方框架

总的来说就是可以直接拿来用的都是静态文件

静态文件存在Django框架中的static文件夹中,但是默认情况下是没有这个文件夹的,需要我们手动去创建该文件夹static

静态的HTML一般放在templaes下

Django基础_第1张图片




    
    Title
    
    
    


登录页面

用户名
密码
动态解析

使用本地配置文件

"""这个配置是访问静态文件的令牌"""
STATIC_URL = '/dasdasdasdas/'

"""其实就是static文件夹的路径"""
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),

动态解析:{%  load static  %}
         {{    }}



    
    Title
    {% load static %}
    
    
    


注册页面

用户名
密码
request对象的方法
action: 1. 不写,朝当前地址提交 2. 全写 3. 只写后缀
post提交表单,前期先把下面的代码注释掉
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',

取出POST请求的数据里的值

可以直接使用字典get取值


def login(request):
    print(request.method, type(request.method))
    if request.method == "POST":
        print(request.POST.get('usernmae'))   # 以post请求的表单数据
    return render(request, 'login.html')

需要取出所有的值时,可以使用getlist取值

print(request.GET)
print(request.GET.get('a'))
print(request.GET.get('b'))
print(request.GET.get('c'))
print(request.GET.getlist('c'))

pycharm链接数据库
三个位置查找数据库相关
	1.右侧上方database
	2.左下方database
	3.配置里面的plugins插件搜索安装
注意:	
	都没有再没有卸载pycharm重新装	

Django基础_第2张图片

连接成功

Django基础_第3张图片

Django连接mysql

Django自带的sqlite3是一个小型的数据库,功能比较少,主要是用于本地测试。实际项目都会替换它的

1.修改配置文件中数据库设置成django连接MySQL

2.手动改动将默认mysqldb改为pymysql
django默认用的是mysqldb模块链接MySQL, 但是该模块的兼容性不好 需要手动改为用pymysql链接,需要指定模块

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'NAME': 'db5',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '12345',
        'CHARSET': 'utf8',

    }
}

​ 2.1 django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码

import pymysql
pymysql.install_as_MySQLdb()

orm介绍

orm:对象映射模型

在Django中操作数据库时,就不在用sql语句了,而是使用面向对象中的语法来操作

缺点:代码封装的程序太高,导致执行效率下降。

类名;就是sql当中的表名

对象:就是一条记录

属性:就是代表一个字段

我们的orm在models.py文件中编写

from django.db import models


class Userinfo(models.Model):   # 类似与表名
    username = models.CharField(max_length=32)
    # 类似于usernmae varcher(32)
    password = models.CharField(max_length=32)

输入迁移:python manage.py makemigrations,此时,还不足以创建,只是生成迁移的记录

Django基础_第4张图片
 

继续输入 python manage.py migrate,这样就创建完毕了

Django基础_第5张图片

我们打开navicat查看

Django基础_第6张图片

Django基础_第7张图片

这样一个完整的使用Django创建数据库就完成了

Django操作mysql的增删改查

增加:直接在下面接着创建即可

from django.db import models


class Userinfo(models.Model):   # 类似与表名
    username = models.CharField(max_length=32, verbose_name='用户名')
    # 类似于usernmae varcher(32)
    password = models.CharField(max_length=32, verbose_name='密码')
    salary = models.IntegerField(verbose_name='价格', default=0)

删除:

直接删除就行

from django.db import models


class Userinfo(models.Model):   # 类似与表名
    username = models.CharField(max_length=32, verbose_name='用户名')
    # 类似于usernmae varcher(32)
    password = models.CharField(max_length=32, verbose_name='密码')

修改:直接修改

from django.db import models


class Userinfo(models.Model):   # 类似与表名
    username = models.CharField(max_length=32, verbose_name='用户名')
    # 类似于usernmae varcher(32)
    password = models.CharField(max_length=32, verbose_name='密码')
    salary12 = models.IntegerField(verbose_name='价格', default=0)

查看:使用navicat查看即可

Django基础_第8张图片

注意,每次修改之后必须要在

terminal中重新输入makemigrations和migrate即可

你可能感兴趣的:(django,python,后端)