编程二组 web之Django框架学习周小结第3篇

哈撒给
创建于04-21
阅读 242
收藏TA

需扫码在手机上打开
文章后点击更新提醒

一、表单

Django的表单系统帮助开发者创建HTML表单,验证用户输入的数据,并重新显示表单,包括任何验证错误。


创建表单:通过继承django.forms.Form或django.forms.ModelForm(用于基于模型创建表单)来创建表单。

字段:表单由字段组成,如CharField、EmailField、ChoiceField等。

验证:表单提供验证功能,可以在字段级别或表单级别进行验证。

渲染:表单可以自动渲染为HTML,也可以手动定制渲染方式。


# forms.py  

from django import forms  

class MyForm(forms.Form):  

  name = forms.CharField(label='Your name', max_length=100)  

  email = forms.EmailField(label='Your email', required=True)

二、访问SQLite数据库

Django支持多种数据库,包括SQLite。SQLite是一个轻量级的文件型数据库,适合开发和小型应用。


设置:在settings.py中配置数据库设置,使用SQLite时,只需指定数据库文件的路径。

模型 (Models):定义数据模型,即数据库表的结构。

查询集 (QuerySets):Django使用查询集来表示从数据库中获取的对象集合。

ORM:Django的ORM(对象关系映射)允许开发者使用Python代码来查询和操作数据库。


# models.py  

from django.db import models  

class Blog(models.Model):  

  title = models.CharField(max_length=200)  

  content = models.TextField()  

  pub_date = models.DateTimeField('date published')  

# views.py  

from django.shortcuts import render  

from .models import Blog  

def blog_list(request):  

  blogs = Blog.objects.all()  

  return render(request, 'blog_list.html', {'blogs': blogs})

三、通用视图 (Generic Views)

Django提供了许多通用视图,可以简化常见的Web开发任务,如列表显示、详情查看、创建、更新和删除对象等。


ListView:显示对象列表。

DetailView:显示对象的详细信息。

CreateView、UpdateView、DeleteView:分别用于创建、更新和删除对象。

FormView 和 ModelFormView:用于处理表单。


# views.py  

from django.views import generic  

from .models import Blog  

class BlogDetailView(generic.DetailView):  

  model = Blog  

  template_name = 'blog_detail.html'  

# urls.py  

from django.urls import path  

from . import views  

urlpatterns = [  

  path('blog//', views.BlogDetailView.as_view(), name='blog-detail'),  

]

四、文件上传

Django可以轻松处理文件上传。


表单:使用FileField或ImageField字段在表单中处理文件上传。

视图:在视图中,你可以访问上传的文件对象,并将其保存到服务器的文件系统中或处理它。

设置:需要配置MEDIA_ROOT和MEDIA_URL来指定上传文件的存储位置和URL。


# forms.py  

from django import forms  

class UploadForm(forms.Form):  

  document = forms.FileField(label='Upload file')  

# views.py  

from django.http import HttpResponseRedirect  

from django.shortcuts import render  

from .forms import UploadForm  

from django.core.files.storage import FileSystemStorage  

def upload_file(request):  

  if request.method == 'POST' and request.FILES['document']:  

    document = request.FILES['document']  

    fs = FileSystemStorage()  

    filename = fs.save(document.name, document)  

    uploaded_file_url = fs.url(filename)  

    return HttpResponseRedirect(uploaded_file_url)  

  else:  

    form = UploadForm()  

  return render(request, 'upload.html', {'form': form})

五、发送邮件

Django内置了发送电子邮件的功能。


配置:在settings.py中配置电子邮件发送的设置,如SMTP服务器、端口、用户名和密码等。

发送邮件:使用django.core.mail模块中的函数来发送邮件,如send_mail()或send_mass_mail()。

模板:可以使用Django模板来生成邮件的内容,实现动态和个性化的邮件发送。


# views.py  

from django.core.mail import send_mail  

from django.conf import settings  

def send_email(request):  

  subject = 'Hello from Django'  

  message = 'This is a test email sent from Django.'  

  email_from = settings.EMAIL_HOST_USER  

  recipient_list = ['recipient@example.com']  

  send_mail(subject, message, email_from, recipient_list)  

  return HttpResponse('Email sent successfully.')

阅读 242
文章由 美篇工作版 编辑制作
投诉