关于“开源Web应用框架Django图文教程”的完整攻略,我可以提供以下内容:
介绍
Django是一个使用Python语言开发的开源Web应用框架,它可以快速地开发高质量的web应用,并且具有强大的后台管理系统,受到了广泛的用户和开发者的喜爱。本教程旨在为初学者介绍Django的使用方法和开发技巧。
准备
在开始学习Django前,你需要先安装Python,并确保Python环境配置正确。然后可以通过以下命令安装最新版的Django:
pip install django
安装完成之后,可以通过以下命令检查Django是否已经成功安装:
django-admin --version
如果输出的版本号与你安装的版本一致,说明Django已经安装成功。
创建项目
使用Django创建一个新的项目非常简单,只需要执行以下命令即可:
django-admin startproject myproject
其中“myproject”是你项目的名称,这个命令将会在当前目录下创建一个新的Django项目。接下来,你可以通过以下命令进入到myproject目录中:
cd myproject
创建应用
一个Django项目可以包含多个应用,每个应用是一个独立的功能模块。要创建一个新的应用,可以执行以下命令:
python manage.py startapp myapp
其中“myapp”是你的应用名称,这个命令将会在当前目录下创建一个新的应用。接下来,你可以编辑myapp目录下的views.py文件,定义应用的视图函数。
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello, world!")
上面这段代码定义了一个名为hello的视图函数,当浏览器访问对应的URL时,会返回一个“Hello, world!”字符串。
配置URL
要让Django知道哪些URL对应哪些视图函数,需要在项目目录下的urls.py文件中进行配置。打开myproject目录下的urls.py文件,将其修改为以下内容:
from django.urls import path
from myapp.views import hello
urlpatterns = [
path('hello/', hello),
]
这个urls.py文件定义了一个名为“hello”的URL,当用户访问/test/时,Django会自动调用hello视图函数来处理请求。
最后,在命令行中执行以下命令,启动Django开发服务器:
python manage.py runserver
现在,你可以在浏览器中访问http://127.0.0.1:8000/hello/,应该可以看到“Hello, world!”字样。
示例1
以下是一个关于如何使用Django实现用户登录和注销功能的示例:
- 创建一个新的应用“account”,并定义登录和注销视图函数。
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
def user_login(request):
if request.method == 'GET':
return render(request, 'login.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return HttpResponseRedirect('/account/profile/')
else:
return render(request, 'login.html', {'error_message': '用户名或密码错误'})
def user_logout(request):
logout(request)
return HttpResponseRedirect('/account/login/')
- 编写登录页面和注销按钮。
<!doctype html>
<html>
<head>
<title>登录</title>
</head>
<body>
{% if error_message %}
<h3>{{ error_message }}</h3>
{% endif %}
<form method="post">
{% csrf_token %}
<p><label>用户名:<input type="text" name="username"></label></p>
<p><label>密码:<input type="password" name="password"></label></p>
<p><input type="submit" value="登录"></p>
</form>
</body>
</html>
- 在urls.py中定义登录和注销的URL。
from django.urls import path
from account.views import user_login, user_logout
urlpatterns = [
path('login/', user_login),
path('logout/', user_logout),
]
现在,用户可以通过访问http://127.0.0.1:8000/account/login/来进行登录操作,访问http://127.0.0.1:8000/account/logout/来进行注销操作。
示例2
以下是一个关于如何使用Django实现用户注册和修改密码功能的示例:
- 编写注册页面和修改密码页面。
<!doctype html>
<html>
<head>
<title>注册</title>
</head>
<body>
{% if error_message %}
<h3>{{ error_message }}</h3>
{% endif %}
<form method="post">
{% csrf_token %}
<p><label>用户名:<input type="text" name="username"></label></p>
<p><label>密码:<input type="password" name="password"></label></p>
<p><label>确认密码:<input type="password" name="password_confirm"></label></p>
<p><label>邮箱:<input type="text" name="email"></label></p>
<p><input type="submit" value="注册"></p>
</form>
</body>
</html>
<!doctype html>
<html>
<head>
<title>修改密码</title>
</head>
<body>
{% if error_message %}
<h3>{{ error_message }}</h3>
{% endif %}
<form method="post">
{% csrf_token %}
<p><label>旧密码:<input type="password" name="old_password"></label></p>
<p><label>新密码:<input type="password" name="new_password"></label></p>
<p><label>确认新密码:<input type="password" name="new_password_confirm"></label></p>
<p><input type="submit" value="修改密码"></p>
</form>
</body>
</html>
- 在views.py中定义注册和修改密码视图函数。
from django.contrib.auth.forms import UserCreationForm, PasswordChangeForm
from django.contrib.auth import login, update_session_auth_hash
from django.shortcuts import render, redirect
def user_register(request):
if request.method == 'GET':
form = UserCreationForm()
return render(request, 'register.html', {'form': form})
elif request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('/account/profile/')
else:
return render(request, 'register.html', {'form': form, 'error_message': '注册失败'})
def user_password_change(request):
if request.method == 'GET':
form = PasswordChangeForm(request.user)
return render(request, 'password_change.html', {'form': form})
elif request.method == 'POST':
form = PasswordChangeForm(request.user, request.POST)
if form.is_valid():
user = form.save()
update_session_auth_hash(request, user)
return redirect('/account/profile/')
else:
return render(request, 'password_change.html', {'form': form, 'error_message': '修改密码失败'})
- 在urls.py中定义注册和修改密码的URL。
from django.urls import path
from account.views import user_register, user_password_change
urlpatterns = [
path('register/', user_register),
path('password_change/', user_password_change),
]
现在,用户可以通过访问http://127.0.0.1:8000/account/register/来进行注册操作,访问http://127.0.0.1:8000/account/password_change/来进行修改密码操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:开源Web应用框架Django图文教程 - Python技术站