Day43-Django的模型及数据交互

        我学得比较慢,今天总算把模型这一块勉强搞完了。从昨天的学习内容继续开始,已经生成了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高级模板与数据库的交互工作。并且后续还有高级模型与高级视图等,想想都头大啊头大。三天了,我才算把这些基础基本搞明白。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章