关于“Python Django的Web开发实例(入门)”,我可以给你提供以下攻略:
1. 安装Django
首先,在开始Django的web开发之前,你需要先安装Django。可以使用pip来安装,可输入以下命令:
pip install Django
2. 创建Django项目
创建Django项目需要使用命令行工具,并使用以下命令:
django-admin startproject project_name
这将会创建一个Django项目的目录结构,其中project_name是你为项目取的名字。
3. 创建Django应用
为了创建Django应用,可以进入项目目录并使用以下命令:
python manage.py startapp app_name
其中app_name是你为应用取的名字。
4. 编写view函数和URL模式
在Django中,当用户请求Web应用时,Django 处理程序会根据 URL 模式寻找匹配的视图函数。
这里提供一个示例:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world.")
上面的代码创建了一个名为 index 的视图函数,并使用了一个名为 HttpResponse 的类来返回 "Hello, world."。
接下来,将视图函数连结到 URL 模式上。在项目的 urls.py 文件中添加以下代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
注意,上面的代码将视图函数 index 与 URL 模式路径 ""(空)进行了匹配。
5. 运行服务器并查看应用
为了运行服务器,使用以下命令:
python manage.py runserver
如果发现:“django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'”这个错误,那么你需要使用以下命令安装 psycopg2:
pip install psycopg2
现在打开浏览器并输入 http://127.0.0.1:8000/,你应该能够看到 "Hello, world."。
示例1:创建一个帖子列表页
下面的代码创建了一个用于展示帖子列表的视图函数:
from django.shortcuts import render
from article.models import Article # article是你的应用名
def article_list(request):
articles = Article.objects.all()
return render(request, 'article_list.html', {'articles': articles})
上述视图函数将数据库中的所有 Article 对象获取并打包到名为 articles 的变量中。然后,将 articles 变量传递给 article_list.html 模板(以下将进行介绍)。
下面的代码创建了一个名为 article_list.html 的模板文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Article List</title>
</head>
<body>
<h1>Article List</h1>
<ul>
{% for article in articles %}
<li><a href="/article/{{article.id}}/">{{ article.title }}</a></li>
{% endfor %}
</ul>
</body>
</html>
上面的 HTML 代码显示了带有超链接的帖子列表。division 内每个 article 变量对应 database 中的每一行数据,id 可以作为该行的唯一 identifier。
接下来,在应用的 urls.py 文件中,添加以下代码,以将视图函数 article_list 连结到 URL "/article/":
from django.urls import path
from . import views
urlpatterns = [
path('article/', views.article_list, name='article_list'),
]
现在打开浏览器并输入 http://127.0.0.1:8000/article/,你会能够看见你创建的帖子列表页了。
示例2:创建一个帖子详细页
下面的代码创建了一个 name 为 article_detail 的视图函数:
from django.shortcuts import render, get_object_or_404
from article.models import Article
def article_detail(request, pk):
article = get_object_or_404(Article, pk=pk)
return render(request, 'article_detail.html', {'article': article})
通过该函数获取单个帖子并将其绑定到名为 article 的变量中。如果没有帖子链接到该 pk,则显示一个类似于“404 notfound”的错误页。
下面的代码创建了一个名为 article_detail.html 的模板文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ article.title }}</title>
</head>
<body>
<h1>{{ article.title }}</h1>
<p>{{ article.body }}</p>
</body>
</html>
该 HTML 代码显示该帖子的标题和正文,两个变量均自视图函数以及将在该模板中使用。
最后,以下代码将视图函数 article_detail 绑定到 URL 模式 "/article/
from django.urls import path
from . import views
urlpatterns = [
path('article/', views.article_list, name='article_list'),
path('article/<int:pk>/', views.article_detail, name='article_detail'),
]
现在,访问链接 http://127.0.0.1:8000/article/1/,你将看到第一篇帖子的详细页面。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python Django的web开发实例(入门) - Python技术站