一.独立模板文件
访问外层中html文件若没指定则按照seetings.py中app01,app02…注册顺序加载
二.独立静态文件
static --> app01 --> xxx.jpg
进行目录配置: settings.py STATICFILES_DIRS=[os.path.join(BASE_DIR ‘static’)]
html文件中:
{% load static %}
<img src=’{% static ‘app01/1.jpg %}’ alt=‘图片’/>
收集静态文件:
STATIC_ROOT = os.path.join(BASE_DIR 'static')
python manage.py collectstatic
三.视图系统(view)
作用:做逻辑判断,最后返回响应
之前写的都是FBV
这里是CBV
views.py
from django.views import View
class Login(View):
def get(self,request):
return render(request,‘app01/login.html’)
def post(self,request)
msg = ‘’
name = request.POST.get(‘name’)
pwd = request.POST.get(‘pwd’)
if name == ‘zs’ and pwd == ‘111’:
return HttpResponse(‘登录成功’)
msg = ‘用户名或密码错误’
return render(request,‘app01/login.html’,{‘msg’:msg})
urls.py
from app01 import views
path('login/',views.Login.as_view())
login.html
<form action='/app01/login/' method='post'>
{% csrf_token %}
<P>用户名: <input type='text' name='name'> </p>
<P>密码: <input type='password' name='pwd'> </p>
<span> {{ msg}}</span>
<P> <input type='submit' value='登录'> </p>
</form>
四.简单的表单处理
请求对象参数
1.path_info 返回用户访问url,不包括域名
2.method:返回HTTP方法的字符串表示,全大写表示
GET,POST
3.COOKIES:一个标准的python的字典,包含所有的cookies
4.FILES:一个类似于字典的对象 ,包含所有的上传文件信息
只有在POST方法下并form带有enctype=‘mutipart/form-data’
才会带有数据
5.HttpResponse.get_full_path():返回path
文件上传
hyml:
<form action='/地址名称/' method='post' enctype='multipart/form-data'>
选择文件: <input: type='file' name='upload_name'>
<br/>
<input type='submit' value='开始上传'>
后台接受:
普通内容: request.POST.get()
上传内容: request.FILES
保存上传内容: with open(path ,mode='wb') as f
五.Django数据库
1.ORM(对象关系映射)
直接编写python语句,然后转换成sql语句,方便开发,但影响数据库操作效率
2.配置 spilt3数据库
DATABASES = {
'dafault':{
'ENGINE':'django.db.backends.sqlite3',
'NAME':os.path.join(BASE_DIR,'db.sqlite3'),
}
}
详细操作见讲义第五讲
3. 数据模型
创建模型类,生成对应的数据库表格
class Person(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
age = models.IntegerField()
height = models.DecimalField(max_digits=5,decimal_places=2)
weight = models.FloatField()
birthday = models.DateField()
生成迁移文件
python manage.py makemigrations app名
同步数据库
python manage.py migrate