小明: 嘿,小华,我最近在做一个实习管理系统的项目,想请教一下你的意见。
小华: 当然可以,这个系统主要有哪些功能呢?
小明: 主要功能有用户注册、登录、发布实习信息、申请实习等。我打算用Python的Django框架来开发。
小华: 那很好啊,Django框架非常适合这种Web应用的开发。首先我们得设置好登录验证机制。
小明: 是的,我也考虑到了。你看看这段代码:
# settings.py
AUTH_USER_MODEL = 'accounts.User'
# urls.py
from django.urls import path
from .views import login_view
urlpatterns = [
path('login/', login_view, name='login'),
]
# views.py
from django.contrib.auth import authenticate, login
def login_view(request):
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
return render(request, 'login.html', {'error': 'Invalid credentials'})
return render(request, 'login.html')
小华: 这段代码看起来不错。接下来我们谈谈数据库的设计吧。
小明: 对,数据库设计也很重要。我打算使用MySQL数据库,表结构如下:
# models.py
from django.db import models
class User(models.Model):
username = models.CharField(max_length=100)
password = models.CharField(max_length=100)
email = models.EmailField()
class Internship(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
company = models.CharField(max_length=200)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
小华: 这个设计很合理,可以满足基本需求。接下来就可以开始编码了。