django框架基本学习(1)

Django框架学习笔记

web框架分类

Django Flask tornado

Fjango 2 3

Flask 2

tornado 1 2 3

Django 大而全 中性武器

Flask tornado 轻量级框架

创建一个django项目
django-admin startproject test
目录介绍
E:\PYCODE\DJANGOTEST\test
│   manage.py   # 管理文件
└───test        # 项目目录
        settings.py  #配置
        urls.py   	 #路由---> url和函数的对应关系
        wsgi.py      # runserver命令就使用 wsgiref模块坐简单的Web server
        __init__.py
运行jango项目
python manage.py runserver 127.0.0.1:8000
python manage.py runserver 80
python manage.py runserver 0.0.0.0:80
配置文件模板
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',
            ],
        },
    },
]
配置静态文件目录
STATIC_URL = '/static/' # 静态文件地址
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]
form表单注意的点
  1. form标签的属性action 和method的地址(不写默认当前地址),method请求方式

  2. input标签必须有name属性,有的标签还需要value

  3. 有一个button按钮或者是type='submit’的input

在同一个项目下创建另外一个模块
python manage.py startapp app01

修改setting 配置文件

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01', # 直接写app的名称
    'app01.apps.App01Config'
]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HvqrUo0g-1612331469332)(C:\Users\dell\Desktop\学习笔记\image-20201208134141543.png)]

ORM ObjectRelational Mapping(ORM)

对应关系:

类 --》 表

对象 --》 数据行(记录)

属性 ——》字段

使用ORM

  1. setting配置数据库连接
  2. 在app下的model写类
class User(models.Model):
    username = models.CharField(max_length=32) # varchar
    password = models.CharField(max_length=32) # varchar
  1. 执行数据迁移指令
python manage.py startapp app01

python manage.py makemigrations #检测所有APP下的models.py 讲变更记录制作成迁移文件

python manage.py migrate  #真正数据的迁移讲变更的记录同步在数据库种

urls.py 路径和函数对应关系

from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index),
    url(r'^$',views.dufault),
    url(r'^login/', views.login),
]

views.py 写函数

def login(request):
    request.method # 请求方式 GET POST\
    request.POST # POST请求提交数据
    request.GET # url上的查询参数
    # ret = models.User.objects.all() 获取所有数据值
    # ret = models.User.objects.filter() 获取匹配值
    return render(request, 'login.html') 
    return render(request, 'login.html')
    return redirect('/login/') #路由重定向
    #返回字符串
    return HttpResponse()

get 和 post 获取一个资源
get 获取一个资源

在地址栏中输入地址回车.

post 提交数据

request.POST

9.ORM

ORM对象关系映射通过操作类,对象的方式去操作数据库.

对应关系

面向对象的, 数据库

面向对象 数据库

类 ===>表

对象 ===> 数据行(记录)

属性 ====> 字段

给数据修改表结构:

1.在app下写models.py中写类(model)

django数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'login',
        'HOST':'192.168.30.50',
        'PORT': 3306,
        'USER':'root',
        'PASSWORD':'XXXXXX'
    }
}

django中orm中所有的方法(QuerySet对像所有的方法)

all():                  查询所有结果 
filter(**kwargs):       它包含了与所给筛选条件相匹配的对象。获取不到返回None
get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个。
                        如果符合筛选条件的对象超过一个或者没有都会抛出错误。
exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象
order_by(*field):       对查询结果排序
reverse():              对查询结果反向排序 
count():                返回数据库中匹配查询(QuerySet)的对象数量。 
first():                返回第一条记录 
last():                返回最后一条记录 
exists():              如果QuerySet包含数据,就返回True,否则返回False
values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的
                              并不是一系 model的实例化对象,而是一个可迭代的字典序列
values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
 distinct():            从返回结果中剔除重复纪录

3.使用pymysql的模块连接MySQL数据库

习惯写入于项目同名的文件夹下的__init__.py

import pymysql
pymysql.install_as_MySQLdb()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值