1 django中app的概念

大学:----------------- 项目
信息学院 ----------app01
物理学院-----------app02
*强调:创建了app,要在配置文件中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]

2 模板路径配置

1 templates文件夹
2 settings里注册一下

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',
],
},
},
]

3 静态文件配置

1 STATIC_URL = '/static/' 一般不要改
2 创建一个static文件夹 一般不要改
3 STATICFILES_DIRS=[
os.path.join(BASE_DIR, 'static'), 创建的文件夹路径(可以写多个)
]

STATIC_URL = '/static/' #这个static是网页后缀,跟文件夹名称没有一点关系,
然后会去DIRS里面一个文件夹一个的去找
STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'static'),//这是文件夹名称
# os.path.join(BASE_DIR, 'static3'),
]

4 完整版登录功能

1 login.html

***重点***1 action:提交到后台的地址三种写法:
1 http://127.0.0.1:8000/login
2 /login/ 推荐用
3 空
2 method post方式
3 <input type="submit" value="提交">或<button></button>
type不可以是button
<form action="http://127.0.0.1:8000/login" method="post">
<p>用户名:<input type="text" name="name" class="form-control"></p>
<p >
密码:<input type="password" name="pwd" class="form-control">
</p>
<input type="submit" value="提交">
</form>

2 视图层

1 request.method ----前台提交过来请求的方式
2 request.POST(相当于字典)----post形式提交过来的数据,(http请求报文的请求体中)
3 request.POST.get('name') ----推荐用get取值(取出列表最后一个值)
4 request.POST.getlist('name')-----取出列表所有的值_
5 前台get方式提交的数据,从request.GET字典里取 def login_view(request):
if request.method=='GET':
return render(request,'login_view.html')
elif request.method=='POST':
name=request.POST.get('name')
pwd=request.POST.get('pwd')
user=models.User.objects.filter(name=name,pwd=pwd).first()
if user:
return HttpResponse('<h1>登陆成功</h1>')
else:
return HttpResponse('<h1>用户名或密码错误</h1>')

3 链接数据库(防止注入,推荐以下写法)

cur.execute('select * from user where name=%s and password=%s ',[name,pwd])

5 get请求和post请求

get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
post:往后台提交数据

6 新手三件套总结

1 render—返回页面
默认会去templates里找,注意路径
2 redirect—重定向
3 HttpResponse
本质:都是返回HttpResponse的对象

7 pycharm连接mysql

安装驱动 配置mysql数据库名称 用户名 密码 端口号进行连接
之后连接sqlite数据库

8 orm介绍

1 ORM即Object Relational Mapping,全称对象关系映射。

优点:
1 不用写sql,不会sql的人也可以写程序
2 开发效率高
缺点:
比sql的效率低

2 如何使用

1 如果连接mysql:在setting里配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#驱动名称
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'admin',
'NAME': 'lqz',#数据库名称
}
}
在app下的__init__.py里写:
import pymysql
pymysql.install_as_MySQLdb()

2 在models.py文件中:

class User(models.Model):
# 自增int类型,是主键
id = models.AutoField(primary_key=True)
# name 是一个varchar类型,长度是32
name = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)

3 在views.py中:
from app01 import models
def login_view(request):
if request.method=='GET':
return render(request,'login_view.html')
elif request.method=='POST':
name=request.POST.get('name')
pwd=request.POST.get('pwd')
user=models.User.objects.filter(name=name,pwd=pwd).first()
if user:
return HttpResponse('登录成功')
else:
return HttpResponse('用户名或密码错误')

3 django-orm

1 不能创建数据库(需要手动创建数据库)
2 可以创建数据表
3 可以创建字段

4 数据库迁移

1 python3 manage.py makemigrations ----记录一下数据库的变化
2 python3 manage.py migrate ----将变化同步到数据库中

django的orm介绍以及静态文件介绍的更多相关文章

  1. Django学习之十: staticfile 静态文件

    目录 Django学习之十: staticfile 静态文件 理解阐述 静态文件 Django对静态文件的处理 其它方面 总结 Django学习之十: staticfile 静态文件 理解阐述     ...

  2. 当Django中Debug=False,静态文件处理方式。

    Django设置DEBUG为False时,'django.contrib.staticfiles'会关闭,即Django不会自动搜索静态文件,静态文件不能加载导致的问题有两个: 1.页面排版不正常,即 ...

  3. django 项目运行时static静态文件不能加载问题处理

    一.首先检查网页中的加载路径是否正确,如果和文件所在路径不一致,就把html改下路径 二.加载路径和文件实际路径一致,看下配置文件: STATIC_URL = '/static/'STATIC_ROO ...

  4. Django(十七):静态文件、中间件

    一.静态文件 参考:https://www.cnblogs.com/jiajiaba/p/10584329.html 参考:https://docs.djangoproject.com/zh-hans ...

  5. Django基础,Day7 - 添加静态文件 static files

    添加css样式文件 1.首先在app目录下创建static文件夹,如polls/static.django会自动找到放在这里的静态文件. AppDirectoriesFinder which look ...

  6. django关闭debug后,静态文件的处理

    Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供 ...

  7. django关闭DEBUG后 static静态文件都访问不了

    Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供 ...

  8. 【解决方案】Django管理页面无法显示静态文件

    [问题描述]:Django管理界面无法获取页面的css样式文件.图片等静态文件.调试模式下看到静态url显示404. [问题原因]:跟踪源码可以发现,静态文件的url是由Django自带的app(dj ...

  9. Django 配置文件settings注解(含静态文件和上传文件配置)

    基于Django1.11配置文件settings.py import os import sys # Build paths inside the project like this: os.path ...

随机推荐

  1. 图形化编程娱乐于教,Kittenblock实例,为背景添加音乐

    图形化编程娱乐于教,Kittenblock实例,为背景添加音乐 跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关键的问题 ...

  2. PAT Advanced 1029 Median (25) [two pointers]

    题目 Given an increasing sequence S of N integers, the median is the number at the middle position. Fo ...

  3. CSS公共样式模版

    CSS文件命名为global.css,一般此CSS文件是用于装全站主要框架CSS样式代码和初始化的CSS样式. 通常会放初始化CSS代码如下: body, div, ul, ol, dl, dt, d ...

  4. Python语言学习前提:循环语句

    一.循环语句 1.循环语句:允许执行下一个语句或语句组多次 2. 循环类型 3. 循环控制语句 4. while 循环语句 a.while循环语句:在某个条件下,循环执行某段程序,以处理需要重复处理的 ...

  5. k8s miniKube 入门

    k8s miniKube 入门 miniKube 是单机版kubernetes, 可以配置运行在同一台主机上的服务和pod,并使用docker作为虚拟化工具 下载:直接下载可执行文件,复制到path ...

  6. 解决安装 .net framework 发生 extracting files error 问题

    VMware虚拟机环境 WIn7 SP1下离线安装 .net framework 4.5.2 遇到 extracting files error 错误,开始以为是文件损坏,结果换 4.7, 4.8 都 ...

  7. 898B. Proper Nutrition#买啤酒问题(枚举&取余)

    题目出处:http://codeforces.com/problemset/problem/898/B 题目大意:为一个整数能否由另外两个整数个整数合成 #include<iostream> ...

  8. MySQL数据库中索引的数据结构是什么?(B树和B+树的区别)

    B树(又叫平衡多路查找树) 注意B-树就是B树,-只是一个符号. B树的性质(一颗M阶B树的特性如下) 1.定义任意非叶子结点最多只有M个儿子,且M>2: 2.根结点的儿子数为[2, M]: 3 ...

  9. Netty之内存泄露

    直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能. 1.为什么要有引用计数器 Netty里四种主力的ByteBuf,其中UnpooledHeapByteBuf底下的by ...

  10. vmware ubuntu 解决 宿主机与虚拟机互相ping不通,虚拟机无线上网的解决办法

    首先 virtual network editor 设为桥接 选定无线网卡 虚拟机的网络设置 选桥接. 其次, 如果不能互相ping通,注意主机是否关闭了防火墙,是否退掉了360(没验证), 还要注意 ...