《Python编程:从入门到实践》第十八章笔记:Django最基本用法笔记

人工智能68

最近在看Python编程:从入门到实践,这是这本书"项目3 Web应用程序"第18章的笔记。记录了django最基本的一些日常用法,以便自己查阅。

可能是我的书版本比较老,书中的项目代码不能直接贯通,也有一些小错误。我在这里做了一些改变。

[En]

It may be that the version of my book is relatively old, and the code of the project in the book can not run through directly, and there are also some minor errors. I made some changes here.

基本用法

  • 创建项目 django-admin startproject 项目名 .
  • 创建数据库 python manage.py migrate
  • 查看项目 python manage.py runserver
  • 创建应用程序 python manage.py startapp 应用程序名

激活模型:

  • 在settings.py的INSTALLED_APPS中加入刚才创建的应用程序
  • 修改数据库,使其能够存储与模型相关的信息:
    python manage.py makemigrations 应用程序名

上述操作产生一个迁移文件("0001_initial.py"),让Django应用这种迁移修改数据库:

python manage.py migrate

只要添加了新的模型,就需要重复上面两个命令再次迁移数据库。

  • 创建超级用户: python manage.py createsuperuser
  • 在管理网站注册模型:
    [En]

    register the model with the management website:*

    在admin.py中 from xxx.models import 模型名
    admin.site.register(模型名)

然后就能使用超级用户账户访问管理网站了:http://localhost:8000/admin/

利用shell查看输入的数据

使用书上的例子:
进入shell python manage.py shell
from learning_logs.models import Topic
获取模型Topic的所有实例
Topic.objects.all()
打印每个对象的ID
topics = Topic.objects.all()
for topic in topics: print(topic.id, topic)
于是就能通过ID来查看对象的属性了
t = Topic.objects.get(id=1)
属性: t.text
t.date_added
另一个模型Entry有个属性是topic是它的ForeignKey,可以通过这种关联获取数据
t.entry_set.all()

其中entry是相关模型的小写名称,可以返回出与t相关的Entry的所有对象条目

创建一个主页

​ 分为三个阶段: 定义URL、编写视图和编写模板
​ 每个URL对应特定的视图,视图调用一个模板,浏览器通过模板生成网页.

定义URL

在urls.py中的urlpatterns中添加相应的url。

书上的代码是:

在learning_log/urls.py中加入:
        url(r'', include('learning_logs.urls', namespace='learning_logs'))
目的是让learning_logs的URL同项目中的其他URL区分开。

然后在learning_logs中创建另一个urls.py文件,引入views
        from . import views
其中的urlpatterns中加入
        url(r'^$', views.index, name='index')

我的django版本与书上不同,没有url(),只有path()。

我的代码是:

```python
在learning_log/urls.py中
path('', include('learning_logs.urls')),

在learning_logs/urls.py中
path('', views.index, name='index'),

Original: https://www.cnblogs.com/eisenji/p/16522762.html
Author: EisenJi
Title: 《Python编程:从入门到实践》第十八章笔记:Django最基本用法笔记