我学得比较慢,今天总算把模型这一块勉强搞完了。从昨天的学习内容继续开始,已经生成了books这个新数据库,那么如何创建表单,又如何访问数据,如何对数据进行交互管理,增删改查呢?
1.先考虑从Python方面增加数据库的内容,修改books数据库的视图views文件:
from django.http import HttpResponse
from books.models import Publisher
def add_book(request):
p1 = Publisher.objects.create(name='Apress', address='2855 Telegraph Avenue',
city='Berkeley', state_province='CA', country='U.S.A',
website='http://www.apress.com')
p1.save()
p2 = Publisher.objects.create(name="O'Reilly", address='10 Fawcett St.',
city='Cambridge', state_province='MA', country='U.S.A',
website='http://www.oreilly.com')
p2.save()
return HttpResponse('添加成功')
导入了模型的Publisher类型,开始进行对象的实例化。创建了两条数据p1和p2。跟sql的创建表单语法等效。然后在项目总目录的urls文件内增加一个api:
books数据库内的urls文件也要修改:
from django.conf.urls import url
from books import views
urlpatterns = [
url(r'addbk/', views.add_book),
]
好了,进入虚拟环境启动服务器:
然后进入浏览器输入相应链接:
再进入数据库刷新后,就能看到两条数据已经生成了:
其实这样的数据生成方式是单一的,应该可以进行更多种的数据创建。比如可以由用户进入页面进行操作,然后生成相应数据库的数据。
2. 我们来创建用户:
python manage.py createsuperuser
输入想用的用户名,然后按回车键:
Username: admin
接下来会提示你输入电子邮件地址:
Email address: [email protected]
最后,输入密码。密码要输入两次,第二次是对第一次的确认。
Password: **********
Password (again): *********
Superuser created successfully.
然后修改books数据库的admin.py文件:
from django.contrib import admin
from .models import Publisher, Author, Book
@admin.register(Publisher)
class PublisherAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'address', 'state_province', 'country']
admin.site.register(Author)
admin.site.register(Book)
其实创建类跟最后两条语句的目的是一样的,都是将相关表单数据加入到admin管理后台中去。但使用了register这个装饰器之后,有很多不清楚的方法给封装进去了,具体是什么我也没搞清。最直观的一个效果就是少写1,2行代码。关键其实是list_display这个方法,在Django里面的独特方法。如果没有它,那么所有的标签都自动显示类名,不好看不方便。
3. 再次通过浏览器登陆,输入刚才的账号和密码:
可以看到我们的books数据库已经成功进入了后台,可以通过页面进行数据库的增删改查了!
选择Publishers是这样的效果:
而选择books是这样的:
由此可以看出刚才list_display的作用,我们的可视化界面更加人性化和简单直观。
酱紫一来,就可以通过管理后台进行数据库的各种操作了,于是这个Django基础案例才算基本圆满完成!后续才能继续进行各种错综复杂的Django高级模板与数据库的交互工作。并且后续还有高级模型与高级视图等,想想都头大啊头大。三天了,我才算把这些基础基本搞明白。