建立之前将app建立
1,首先进入django到settting进行配置:
1,检查DIR
2,引掉csrf
3,在最后写入:
staticfiles_dirs=[
os.path.join(base_dir,'static)
]
4,检查app:
格式:app01.apps.App01Config app名字.apps.APP名字config
2,建立static
3,建立数据库
1,先有数据库
2,setting中的:配置
````DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'book2',
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':3306,
` }
```}
3,在setting中同级init 加
import pycharm
pycharm.install_as_MySQLdb()
4,在models中写入表和字段:
from django.db import models
# Create your models here.
class library(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32,unique=True)
def __str__(self):
return self.name
5,进行两步操作:
makemigratoins
migrate
在views中写入函数
在trmplates写入html
将这两条在urls连接
在html取值
{%for i in 列表%}
{{forloop.conter}} 每个信息进行编号
{{i.id}}取值
a 标签中: href='/library/?id={library.id{}}'
函数:
查:
models.library.objects.all().order_by('id')
增加:
models.library.objects.create(name=add_name)
删除:
del_list.delete() #删除
改:
edit_obj = list_name[0] #取到的是对象
edit_obj.name = obj_deit_name
edit_obj.save() #保存
from django.shortcuts import render,redirect,HttpResponse
from app01 import models
# Create your views here.
def library_list(request): #返回的是整个网页
library_list_obj = models.library.objects.all().order_by('id')
return render(request,'library_list.html',{'library_all':library_list_obj })
def add_library(request):#增加
if request.method == 'POST':
add_name = request.POST.get('new_name')#获取new_name的信息
name_list = models.library.objects.filter(name=add_name)#获取数据库的信息
if add_name and not name_list: #判断add_name是否存在 和查找数据库中的信息
models.library.objects.create(name=add_name)
return redirect('/library/')
if not add_name: #不存在时返回不为空
return render(request,'add_library.html',{'err_name':add_name,'err_mag':'不能为空'})
if name_list: #根据数据库进行判断
return render(request,'add_library.html',{'err_name':add_name,'err_mag':'出版社重复'})
return render(request,'add_library.html')
def del_library(request):
del_id = request.GET.get('id') #获取id 进行判断
del_list = models.library.objects.filter(id=del_id)
if del_list:
del_list.delete() #删除
return redirect('/library/')
else:
return HttpResponse('删除失败')
def edit_library(request): #进行修改
edit_id = request.GET.get('id') #打开页面进行获取时的值
list_name = models.library.objects.filter(id=edit_id) #数据库进行取值
print(list_name)
err_msg='' #为省略代码
if request.method == 'POST':
obj_deit_name = request.POST.get('edit_name') #post打出后的取值
obj_name_list = models.library.objects.filter(name=obj_deit_name) #进行判断
print(obj_deit_name,obj_name_list)
if obj_deit_name and list_name and not obj_name_list:
edit_obj = list_name[0] #取到的是对象
edit_obj.name = obj_deit_name
edit_obj.save() #保存
return redirect('/library/')
if obj_name_list:
err_msg='出版社已存在'
if not obj_deit_name:
err_msg = '出版社不能为空'
if list_name:
obj_name = list_name[0]
return render(request,'edit_library.html',{'err_mag':err_msg,'obj_name':obj_name })#改值返回页面
else:
return HttpResponse('数据不存在')