python+Django+pycharm+mysql 搭建首个web项目详解

下面是详细的“python+Django+pycharm+mysql 搭建首个web项目详解”攻略,包括两个示例说明。

1. 安装和配置环境

安装python

首先,需要安装Python。可以从Python官网下载安装包,选择对应操作系统版本的安装包进行下载安装。

安装Django

安装完成Python之后,通过pip安装Django。可以在命令提示符窗口(Windows)或终端(Mac/Linux)中,输入以下命令进行安装:

pip install django

安装pycharm

可以从pycharm官网下载对应操作系统版本的安装包进行下载安装。

安装mysql

可以从mysql官网下载对应操作系统版本的安装包进行下载安装。

配置环境

安装完成后,需要将Python、Django和mysql配置到系统环境变量中。这样在终端或命令提示符窗口中就可以直接使用python、django和mysql等命令了。

2. 创建Django项目

在pycharm中创建Django项目,可以按照以下步骤进行:

  1. 打开pycharm,点击“Create New Project”按钮;
  2. 在弹出的窗口中,选择Django项目;
  3. 为项目设置名称、目录和Python解释器;
  4. 点击“Create”按钮,在项目中创建一个虚拟环境;

3. 连接mysql数据库

在Django项目中连接mysql数据库,需要使用Python的mysqlclient模块,可以通过pip安装该模块。

在settings.py文件中,进行数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_database_user',
        'PASSWORD': 'your_database_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

4. 创建Django应用

在Django项目中创建应用程序,可以按照以下步骤进行:

  1. 在pycharm中右键单击Django项目,选择“New”,然后选择“app”;
  2. 为应用程序设置名称,然后点击“OK”按钮;
  3. 在应用程序文件夹中,创建urls.py文件,用于定义URL路由。
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

5. 定义视图函数

在创建的Django应用程序中,需要定义视图函数,用于处理请求并返回响应。可以按照以下步骤进行:

在views.py文件中,定义一个函数:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world!")

6. 运行项目

在pycharm中,点击运行按钮,启动Django项目。在浏览器中输入http://localhost:8000/,就可以看到 “Hello, world!” 的响应了。

示例1: 创建博客应用程序

在Django项目中创建一个简单的博客应用程序。可以按照以下步骤进行:

  1. 创建应用程序

在pycharm中右键单击Django项目,选择“New”,然后选择“app”。

  1. 创建Posts模型

在创建的应用程序中,创建models.py文件。在models.py文件中定义一个名为Posts的模型。

from django.db import models

class Posts(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title
  1. 创建Posts视图函数

在应用程序的views.py文件中,定义两个函数:

from django.shortcuts import render
from .models import Posts

def posts_list(request):
    posts = Posts.objects.all()
    return render(request, 'posts_list.html', {'posts': posts})

def posts_detail(request, pk):
    post = Posts.objects.get(pk=pk)
    return render(request, 'posts_detail.html', {'post': post})
  1. 创建Posts URL路由

在应用程序的urls.py文件中,定义两个URL路由:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.posts_list, name='posts_list'),
    path('post/<int:pk>/', views.posts_detail, name='posts_detail'),
]
  1. 创建Posts模板

在应用程序的templates文件夹中,创建两个HTML文件,用于显示文章列表和文章详细信息。

posts_list.html:

{% for post in posts %}
    <h2>{{post.title}}</h2>
    <p>{{post.body}}</p>
{% endfor %}

posts_detail.html:

<h2>{{post.title}}</h2>
<p>{{post.body}}</p>
  1. 使用Django默认的admin管理界面添加博客文章

可以使用Django内置的admin应用程序来管理Posts模型,添加博客文章。在应用程序的admin.py文件中,注册Posts模型:

from django.contrib import admin
from .models import Posts

admin.site.register(Posts)

示例2:实现用户注册和登录功能

在Django项目中实现用户注册和登录功能,可以按照以下步骤进行。

  1. 创建用户模型

在Django项目中,可以使用内置的User模型来管理用户。需要在models.py文件中导入User模型:

from django.contrib.auth.models import User
  1. 创建用户注册表单

在应用程序中创建一个注册表单,用于用户输入注册信息。

from django import forms
from django.contrib.auth.models import User

class UserRegisterForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput)

    class Meta:
        model = User
        fields = ['username', 'email', 'password']

    def clean_email(self):
        email = self.cleaned_data.get('email')
        if User.objects.filter(email=email).count():
            raise forms.ValidationError("Email已经被使用。")
        return email
  1. 创建用户登录表单

在应用程序中创建一个登录表单,用于用户输入用户名和密码。

from django import forms
from django.contrib.auth import authenticate

class UserLoginForm(forms.Form):
    username = forms.CharField()
    password = forms.CharField(widget=forms.PasswordInput)

    def clean(self):
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')
        user = authenticate(username=username, password=password)
        if not user or not user.is_active:
            raise forms.ValidationError("用户名或密码错误。")
        self.cleaned_data['user'] = user
        return self.cleaned_data
  1. 创建用户注册视图函数和URL路由

在views.py文件中定义注册视图函数和URL路由。

from django.shortcuts import render
from .forms import UserRegisterForm
from django.contrib.auth import login

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('index')
    else:
        form = UserRegisterForm()
    return render(request, 'register.html', {'form': form})

urls.py中的路由:

from django.urls import path
from . import views

urlpatterns = [
    # 注册
    path('register/', views.register, name='register'),
]
  1. 创建用户登录视图函数和URL路由

在views.py文件中定义登录视图函数和URL路由。

from django.shortcuts import render
from .forms import UserLoginForm
from django.contrib.auth import authenticate, login

def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = form.cleaned_data['user']
            login(request, user)
            return redirect('index')
    else:
        form = UserLoginForm()
    return render(request, 'login.html', {'form': form})

urls.py中的路由:

from django.urls import path
from . import views

urlpatterns = [
    # 登录
    path('login/', views.login, name='login'),
]
  1. 创建注册和登录模板

在templates文件夹中,创建一个register.html模板和一个login.html模板。

register.html:

<form method="post">
    {% csrf_token %}
    {{ form.username }}
    {{ form.email }}
    {{ form.password }}
    <button type="submit">注册</button>
</form>

login.html:

<form method="post">
    {% csrf_token %}
    {{ form.username }}
    {{ form.password }}
    <button type="submit">登录</button>
</form>

到这里,你就已经完整的了解了“python+Django+pycharm+mysql 搭建首个web项目详解”的攻略,同时,你也已经掌握了两个示例的详细步骤说明,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python+Django+pycharm+mysql 搭建首个web项目详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 如何设置django 连接 db.sqlite3

             

    Django 2023年4月13日
    00
  • python django day 3 页面,自动 跳转,参数传递

    zqxt_views/urls.pypath(”, calc_views.index, name=’home’), calc/views.pydef index(request): return render(request, ‘home.html’) calc/templates/home.html<!DOCTYPE html><htm…

    Django 2023年4月13日
    00
  • Django组件总结

    分页器的使用 分页器在页面中非常常见,当数据库条数数据过多时,页面一次性显示不好看时,我们可以使用分页器,将数据分几次显示。 1.1 数据库内插入大量数据 Booklist=[] for i in range(100): Booklist.append(Book(title=”book”+str(i),price=30+i*i)) Book.objects.…

    Django 2023年4月11日
    00
  • django清理migration终极解决办法

      1、django生成数据表结构的过程          在我们设计好models以后,我们可以通过以下命令生成将要同步给数据库的数据结构文件          python manage.py makemigrations          生成的文件在app目录下的migrations文件夹内以000*开头的文件。          每运行一次make…

    Django 2023年4月11日
    00
  • Django后台admin的使用详解

    Django后台admin的使用详解 Django框架提供了一个强大的后台管理系统,即Django Admin。它可以让我们快速地创建、修改和删除数据库中的数据记录,通过Django Admin,我们可以在不编写任何代码的情况下,创建一个完整的后台管理系统。下面我们来详细讲解Django Admin的使用。 配置Django Admin 在使用Django …

    Django 2023年5月16日
    00
  • 【Django drf】 序列化类常用字段类和字段参数 定制序列化字段的两种方式 关系表外键字段的反序列化保存 序列化类继承ModelSerializer 反序列化数据校验源码分析

    目录 序列化类常用字段类和字段参数 常用字段类 常用字段参数 选项参数 通用参数 序列化类高级用法之source source填写类中字段 source填写模型类中方法 source支持跨表查询 定制序列化字段的两种方式 准备工作 方法一:使用SerializerMethodField 方法二:在模型类中写方法 关系表外键字段的反序列化保存 前端提交的数据 …

    Django 2023年4月13日
    00
  • Django用户登录与注册系统的实现示例

    下面我将详细讲解“Django用户登录与注册系统的实现示例”的完整攻略,包含两条示例说明。 第一条示例:创建Django项目并实现用户登录 1. 创建Django项目并配置数据库 首先我们需要创建一个Django项目,可以使用django-admin命令或者IDE自带的创建项目功能来创建。 然后,我们要配置数据库。在settings.py文件中,找到DATA…

    Django 2023年5月16日
    00
  • 第十四篇Django-model进阶(中介模型,查询优化,extra,整体插入)

    阅读目录(Content) 中介模型 查询优化 extra 整体插入 中介模型 但是,有时你可能需要关联数据到两个模型之间的关系上。 但是,有时你可能想知道更多成员关系的细节,比如成员是何时加入小组的。 对于上面的音乐小组的例子,代码如下: from django.db import models class Person(models.Model): na…

    Django 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部