下面是详细的“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项目,可以按照以下步骤进行:
- 打开pycharm,点击“Create New Project”按钮;
- 在弹出的窗口中,选择Django项目;
- 为项目设置名称、目录和Python解释器;
- 点击“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项目中创建应用程序,可以按照以下步骤进行:
- 在pycharm中右键单击Django项目,选择“New”,然后选择“app”;
- 为应用程序设置名称,然后点击“OK”按钮;
- 在应用程序文件夹中,创建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项目中创建一个简单的博客应用程序。可以按照以下步骤进行:
- 创建应用程序
在pycharm中右键单击Django项目,选择“New”,然后选择“app”。
- 创建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
- 创建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})
- 创建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'),
]
- 创建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>
- 使用Django默认的admin管理界面添加博客文章
可以使用Django内置的admin应用程序来管理Posts模型,添加博客文章。在应用程序的admin.py文件中,注册Posts模型:
from django.contrib import admin
from .models import Posts
admin.site.register(Posts)
示例2:实现用户注册和登录功能
在Django项目中实现用户注册和登录功能,可以按照以下步骤进行。
- 创建用户模型
在Django项目中,可以使用内置的User模型来管理用户。需要在models.py文件中导入User模型:
from django.contrib.auth.models import User
- 创建用户注册表单
在应用程序中创建一个注册表单,用于用户输入注册信息。
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
- 创建用户登录表单
在应用程序中创建一个登录表单,用于用户输入用户名和密码。
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
- 创建用户注册视图函数和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'),
]
- 创建用户登录视图函数和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'),
]
- 创建注册和登录模板
在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技术站