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,inspectdb,操作已经存在的表

    1.Django附带了一个名为inspectdb程序,它可以通过现有数据库来创建模型,并将相关模型代码另存到指定文件中。在新建的newmodels.py文件中挑选指定表格对应的模型代码,并将其复制到相关的文件中。 1 python manage.py inspectdb > newmodels.py 若要操作指定数据库,使用如下代码: 1 python…

    Django 2023年4月12日
    00
  • Django框架创建项目的方法入门教程

    下面是“Django框架创建项目的方法入门教程”的完整攻略。 创建Django项目的步骤 1. 安装Django框架 要创建一个Djano项目,首先我们需要安装Django框架。可以使用pip命令进行安装: pip install django 2. 创建Djano项目 在安装好Django之后,我们就可以创建Django项目了。在命令行中进入项目所在文件夹…

    Django 2023年5月16日
    00
  • Django在视图中使用表单并和数据库进行数据交互的实现

    下面是”Django在视图中使用表单并和数据库进行数据交互的实现”的完整攻略: 准备工作 在开始实现之前,我们需要做一些必要的准备工作。 首先,先创建一个Django项目,并创建一个名为myapp的应用,执行以下命令: django-admin startproject myproject cd myproject python manage.py star…

    Django 2023年5月16日
    00
  • Django框架搭建web项目(二)

    1.在路径XXXXX\mydjango\mydjango\mydjango下新建views.py(在浏览器中url请求后所展示的内容设置) from django.http import HttpResponse def hello(request): return HttpResponse(“Hello world ! “) 2.绑定url与视图函数,在路…

    Django 2023年4月10日
    00
  • Django 中的缓存问题

    Django 中的缓存问题 简单介绍 ​ 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. ​ 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. ​ 缓存是将一些常用的数据保存内存或者memcache中,在一定的…

    Django 2023年4月16日
    00
  • Django在Ubuntu14.04的部署方法

    我将为您提供详细的”Django在Ubuntu14.04的部署方法”攻略: 确保服务器环境 在开始部署Django应用程序之前,请确保你的服务器上已经安装了以下软件: Python 2.7 pip包管理器 virtualenv虚拟环境 nginx服务器 gunicorn网关 你可以使用以下命令来安装这些软件: $ sudo apt-get update $ …

    Django 2023年5月16日
    00
  • django 上传头像并预览 3选1

    注册页面的头像上传 register.html<!DOCTYPE html> 1 <html lang=”en”> 2 <head> 3 <meta charset=”UTF-8″> 4 <title>Title</title> 5 </head> 6 <body&gt…

    Django 2023年4月13日
    00
  • django中修改QueryDict数据类型和转成普通字典

    简介 在正常的请求/响应周期中访问时,request.POST和request.GET上的QueryDict将是不可变的. 要获得可变版本,您需要使用QueryDict.copy()或者._mutable = True 第一种方式 用request.POST调用_mutable并修改为True reuqets.POST._mutable = True 第二种…

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