著作権:同意なしブロガー、転載を禁止します。ありがとうございます!https://blog.csdn.net/cp_123321/article/details/86513442
1.スイッチ仮想環境
Pycharmは、ターミナルを開いて、環境をDjangoのない場合は、CD環境をジャンゴする必要があり、活性化入力環境をアクティブに
2. Djangoプロジェクトを作成します。
(この方法で作成したプロジェクトは、あなたがパスsettings.pyをHTMLファイルを格納するために使用されるプロジェクトテンプレートフォルダ内のファイルを作成し、設定する必要があります)
python manage.py startproject 项目名称
settings.pyに設定します
アプリの作成
python manage.py startapp app名字
プロジェクトの実行
python manage.py runserver # 只能自己的主机访问 生成的网址是 127.0.0.1:8000
python manage.py runserver 0.0.0.0:8000 # 局域网的其他电脑也可以访问 生成的网址是 自己主机ip:8000
書き込まれたデータ・モデル(models.py)後3は、データマイグレーションファイルを生成します
python manage.py makemigrations
python manage.py migrate
4.端末内のデータを追加します。
ジャンゴで自分の環境を確認するには
python manage.py shell
依次执行以下命令, Post是写好的数据模型
from django.contrib.auth.models import User
from blog.models impost Post
user = User.objects.get(username="admin")
添加数据, 初始化一个对象,并且进行赋值,
post=Post(title="first post",slug="first-post",body="post body",author=user)
post.save()
查询数据
post1 = Post.objects.get(slug='first-post')
post1
all_posts = Post.objects.all()
all_posts
a = all_posts.get(id=1)
a
5.スーパー管理者を作成します。
python manage.py createsuperuser
依次输入用户名,邮箱(选填),密码
構成で6.settings.py
ジャンゴでコマンドブロックがあり、唯一のコマンドを入力する必要があり、あなたはPythonのmanage.pyを失う必要はありません。
------------------------------いくつかの共通のモジュール/パッケージ上------------- ---------------------------
中のurls.py
from django.contrib import admin
from django.urls import path, include
from django.conf.urls import url
url(r'^index$', index, name='index'),
でmodels.pyの
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User # 使用django自带的用户模型
from django.urls import reverse
# reverse 方法通过名称和其他参数来构建url
例如 return reverse("blog:post_detail", args=[self.publish.year, self.publish.month, self.publish.day, self.slug])
中のviews.py
from django.shortcuts import render, HttpResponse, get_object_or_404 # get_object_or_404 如果匹配到,返回数据, 匹配不到返回404
from django.views.generic import ListView, DeleteView # 模型
from django.db.models import Q
from django.core.mail import send_mail
------------------------------- settings.py上のいくつかの設定------------ -------------------
他のファイルを追加-------------------------- ------------(バックグラウンドから/画像データベースを追加します) ----
構成のsettings.py
在最后添加
# 需要配置媒体路径, 如果不配置的话, 则只能在后台上传, 在页面中下载(加载)的话是失败的.
# 配置媒体文件的路由
MEDIA_URL = '/media/'
# 配置媒体文件目录
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 需要在项目里新建一个media文件夹,用来存放文件
でadmin.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url
# serve专门用来处理返回文件的函数
from django.views.static import serve
from 项目名字 import settings
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^', include('MyOffice.urls')),
# path("myoffice", include('MyOffice.urls'))
# path 用来匹配资源路径, 第二个path,参数
# document_root 配置媒体文件资源路径
path('media/<path:path>', serve, {'document_root': settings.MEDIA_ROOT}),
]
------------------------------------ログイン/ログアウト共通モジュール------- ---------------------------
views.py里的
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login # authenticate这个方法接收request对象,username,password三个参数,到数据库中去匹配,如果匹配成功,返回一个User数据对象, 否则返回None
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView, PasswordChangeDoneView, PasswordResetView
# LoginView 处理登录表单填写和登录功能
# LogoutView 退出登录
# PasswordChangeView 处理修改密码的表单, 然后修改密码
# PasswordChangeDoneView 成功修改密码之后的执行的视图
# PasswordResetView 用户选择重置密码功能的视图, 生成一个一次性重置密码链接和对应的验证token, 然后发送邮件给用户
# login_required的使用
@login_required
def dashboard(request):
return render(request, "account/dashboard.html")
urls.py里的
from django.urls import path
from account.views import *
from django.contrib.auth import views
# views.LogoutView.as_view(), views.LoginView.as_view() 需要新建一个registration文件夹,然后重新内置文件,文件的名字按内置的名字起,也可以重写
# settings里配置
"""
LOGIN_REDIRECT_URL = "dashboard" # 如果没有指定next参数,登录成功之后重定向的url
LOGIN_URL = "login" # 用户需要登录的情况下,被重定向的url
LOGOUT_URL = "logout"
"""
urlpatterns = [
# path("login/", user_login, name="login"),
path("login/", views.LoginView.as_view(), name="login"),
path("logout/", views.LogoutView.as_view(), name="logout"),
path("", dashboard, name="dashboard")
]
在app里新建一个forms.py文件
from django import forms
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)