上一篇文章链接Django入门01
我们接着上一篇文章的基础上,来继续了解进一步的Django框架
用pycharm打开之前创建的项目watercar
1.模板函数和视图函数的使用:
1.1增加模板的路径:
在项目同名文件夹的setting里面的TEMPLATES里修改:
'DIRS': [os.path.join(BASE_DIR,'templates')],
1.2 在项目watercar上右键新建directory,名字要严谨,叫做‘templates’
1.3 在templates里面新建index.html文件:
<body> </body>中间加一句:
<h1> {{ bianliang }} </h1>
1.3 在视图函数views里,进行模板的调用:
修改index函数:
def index(request):
# return HttpResponse('欢迎')
context = {'bianliang':'假设是数据库取出来的数据,我自己瞎写的'}
return render(request,'index.html',context=context)
在终端在(waterDB_django) python@ubuntu:~/Desktop/watercar$状态时
输入:python manage.py runserver #用来运行这个项目
然后网页地址输入http://127.0.0.1:8000/index #通过urls
就可以看到网页里出现了'假设是数据库取出来的数据,我自己瞎写的'这句话
运行流程:
首先运行了服务器后,输入http://127.0.0.1:8000/index
服务器开始寻找这个地址下的index是什么
在urls里面正则匹配: url(r'^index$',views.index),
匹配到index了,运行后面的函数views.index (#在views里的index函数)
views里的index函数返回了index.html这个网页,context传入要覆盖的数据
2.视图和模板函数的进一步使用:
2.1 urls里添加路径:
url(r'^show_all$',views.show_all),
2.2 views里添加控制函数:
def show_all(request):
a = UserInfo.objects.all() #获取到由一个个对象组成的可迭代对象
# UserInfo.objects.filter()
context = {'user_obj':a}
return render(request,'show.html',context=context)
2.3 templates里面新建show.html:
<ul>
{% for obj in user_obj %} #遍历出一个对象
<li>{{ obj.user_name }}{{ obj.id }}</li> #展示出对象的user_name和id
{% endfor %} #结束遍历
</ul>
3.界面管理,删除键:
3.1首先写好界面templates:
在原来show.html里修改为:
<ul>
{% for obj in user_obj %}
<li>{{ obj.user_name }}{{ obj.id }}-------所选操作:<a href="delete{{ obj.id }}">删除</a></li>
{% endfor %}
<a href="add_user">增加</a>
</ul>
3.2然后网页地址后跟show就出来一个界面,上面显示所有的user_name ,后面还跟一个a标签,a标签的值为‘删除’,
点击删除链接到delete{{ obj.id }},这个后面括号里就是user_name 对应的id
#此时的删除是无用的,因为还没有写控制删除的函数
3.3在urls里写链接到 delete{{ obj.id }} 后运行views里的函数 :
url(r'^delete(\d+)$',views.delete_user), #(\d+)正则匹配出数字,传到下面调用的函数里
3.4在views里写控制函数:
def delete_user(request,user_id):
print(user_id)
try:
obj = UserInfo.objects.get(id=user_id) #获取到id为user_id的那一个对象
print(obj)
obj.delete() #从数据库删除这个对象
except Exception as e: #如果获取不到id为user_id的那一个对象,就显示'你要删除的用户不存在'
print('你要删除的用户不存在')
return HttpResponse('已经删除')
接下来打开show的网页时,点击删除,就是真的从数据库里删除了
4.增加数据:
4.1添加urls:
url(r'^add_user$',views.add_user), #调用add_user地址时调用views中的add_user函数
4.2在views里写控制函数:
def add_user(request):
user_new=UserInfo() #新建一个对象
user_new.user_name='王二狗' # user_name 赋值
user_new.password='123456'
user_new.email='123'
user_new.phone=123456
user_new.save() #新的数据增加完了,要保存修改
return HttpResponse('增加成功')