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

yizhihongxing

下面是详细的“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教程如何自学

    当想要自学Django教程时,可以遵循以下步骤: 1. 学习前的准备 在开始学习Django之前,建议先掌握Python基础并了解Web开发的相关概念。以下是一些学习资源: Python 官方文档 Python 基础教程 Django 官方文档 Django 教程 2. 安装 Django 在开始学习Django之前,需要先安装Django。可以通过以下步骤…

    Django 2023年5月16日
    00
  • 教你安装python Django(图文)

    下面我将为您详细讲解“教你安装Python Django(图文)”的完整攻略,包括两个示例说明。 1. 安装 Python 环境 1.1 下载 Python 首先,要安装 Python 环境,我们需要去官网下载 Python。官网地址:https://www.python.org/downloads/ 根据你的系统选择合适的版本下载,比如 Windows 系…

    Django 2023年5月16日
    00
  • 关于Django的序列化问题。serializers

      在DRF框架里,ModelSerializers是一个重要的组件。大大的帮组我们节省了数据序列化的过程,真的可以说是良心产品。接手的这个项目用的Django,前人的代码都是手动序列化的,为了保证风格的一致性我续写的代码也都是手动序列化。后来遇到一个问题:有个接口的查询结果是querySet里的数据有几千条,而且需要一次性返回,不能做分页处理。这一下几千条…

    Django 2023年4月15日
    00
  • Django2.0 models中的on_delete参数

    一、外键、OneToOne字段等on_delete为必须参数  – 如下ForeignKey字段源码,to、on_delete为必须参数to:关联的表on_delete:当该表中的某条数据删除后,关联外键的操作related_name:反查参数,设置后可以在被关联表中通过该字段反查外键所在表,默认:set_表名to_field:默认主键,因为mysql只支持…

    Django 2023年4月10日
    00
  • Anaconda+django写出第一个web app(四)

    前面对Models有了一些了解,今天开始进一步了解Views,了解Views如何和Models交互以及了解模板(templates)。 打开main文件夹下的views.py,重新编写homepage函数,render的用法可在帮助文档 [1]中查看: from django.shortcuts import render from django.http …

    Django 2023年4月11日
    00
  • 离线部署Django工程项目迁移到无网络环境

      已有环境 CentOS 7 Python 3.7 Django 2.1 主要用到下面三个命令: # 导出依赖 pip freeze > requirements.txt # 按照依赖下载离线包 pip download -d packagesDir -r requirements.txt # 安装离线包 whl包、tgz包 单个包、目录下的包 pi…

    Django 2023年4月10日
    00
  • terminal 报错:ImportError: Couldn’t import Django.

    1.问题   今天学习django,测试当前项目时遇到了莫名其妙的报错:    python manage.py runserver:ImportError: Couldn’t import Django. Are you sure it’s installed and available on your PYTHONPATH environment var…

    Django 2023年4月15日
    00
  • django中path和url函数的具体使用

    在Django中,path和url函数用于先匹配URL并执行相应视图函数。 path函数的使用 语法结构 path(route, view, kwargs=None, name=None) 参数说明 route:字符串类型,表示 URL 规则 view:处理请求的函数(视图函数), 每个视图都有一个函数视图对应 kwargs:字典类型,传递额外的参数给视图函…

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