django common commands and create a complete project django

Copyright: bloggers without consent, is prohibited reprint. Thank you! https://blog.csdn.net/cp_123321/article/details/86513442

1. Switch virtual environment

Pycharm open the Terminal, if not django environment, need to django cd environment, and activate the activation input environment

2. Create a django project

(Project created in this way, you need to create a file in the project templates folder used to store html files, and set the path where the settings.py)

python manage.py startproject 项目名称

Set in settings.py

 

Creating app

python manage.py startapp app名字

Running the Project

python manage.py runserver  # 只能自己的主机访问  生成的网址是 127.0.0.1:8000
python manage.py runserver 0.0.0.0:8000  # 局域网的其他电脑也可以访问 生成的网址是 自己主机ip:8000

3. After written data model (models.py), generates data migration file

python manage.py makemigrations
python manage.py migrate

4. Add the data in the terminal

To determine their own environment in django

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. Create a super administrator

python manage.py createsuperuser
依次输入用户名,邮箱(选填),密码

6.settings.py in the configuration

There is a command block in django, only need to enter a command, you do not need to lose python manage.py

------------------------------ on some common modules / package ------------- ---------------------------

urls.py in

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 in

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 in

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

 

------------------------------- some configuration on the settings.py ------------ -------------------

-------------------------- add other files (from the background / add a picture database) ------------ ----

settings.py in the configuration

在最后添加
# 需要配置媒体路径, 如果不配置的话, 则只能在后台上传, 在页面中下载(加载)的话是失败的.
# 配置媒体文件的路由
MEDIA_URL = '/media/'
# 配置媒体文件目录
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 需要在项目里新建一个media文件夹,用来存放文件

admin.py in

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}),
]

------------------------------------ login / logout common module ------- ---------------------------

 views.py Satoteki

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 Satoteki

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)

 

Guess you like

Origin blog.csdn.net/cp_123321/article/details/86513442