一、Django中app的概念
大学: ---------------项目
信息学院 ----------app01
物理学院 ----------app02
强调:创建了app,要在setting.py配置文件中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',#创建项目时就创建了app,默认样式
'app02',#手动注册
]
二、模板的路径设置
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/' #一般不要改
#创建一个static文件夹 一般不要改
STATICFILES_DIRS=[
os.path.join(BASE_DIR, 'static'), #创建的文件夹路径(可以写多个)
]
四、完整的登录功能
login.html
<!--action:提交到后台的地址三种写法:
1.http://127.0.0.1:8000/login 直接指定路径
2./login/ 推荐用
3.空 当前页面
-->
<!--methods的两种提交方式:
1.get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制),提交的数据会在url中显示,数据不安全
2.post:往后台提交数据,相对安全
-->
<form action="/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="提交">
{{ msg }}
</form>
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
# Create your views here.
def login(request):
msg=''
if request.method == 'POST':
name = request.POST.get('user')
pwd = request.POST.get('pwd')
res = models.User.objects.filter(name=name, pwd=pwd)
if res:
msg='登陆成功'
else:
msg = '账号或密码错误'
return render(request,'login.html',{'msg':msg})
五、新手三件套
- render:返回页,默认会去templates里找,注意路径
- redirect:重定向
- HttpResponse
本质:render和redirect都是返回HttpResponse的对象,是属于HttpResponse的方法
六、orm介绍
1.ORM
即Object Relational Mapping,全称对象关系映射。
优点:
1.不用写sql,不会sql的人也可以写程序
2.开发效率高
缺点:
1.可能sql的效率低
2.如何使用:
1.如果连接mysql:在setting里配置:
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'admin',
'NAME': 'lqz',
}
2.在app下的__init__.py里写:
import pymysql
# 更换连接模块
# MySQLdb替换为pymysql
pymysql.install_as_MySQLdb()
3.django-orm:
1.不能创建数据库(需要手动创建数据库)
2.可以创建数据表
3.可以创建字段
4.数据库迁移
1.python3 manage.py makemigrations ----记录一下数据库的变化
2.python3 manage.py migrate ----将变化同步到数据库中