django的常用命令以及创建一个完整的django项目

版权声明:未经博主同意,禁止转载。谢谢! https://blog.csdn.net/cp_123321/article/details/86513442

1.切换虚拟环境

在pycharm中的Terminal中打开, 如果不在django 环境中, 需要cd到django环境中, 然后输入  activate激活环境

2.创建一个django项目

(这种方式创建的项目,需要在项目里创建一个templates的文件夹,用来存放html文件, 并在settings.py里设置路径)

python manage.py startproject 项目名称

在settings.py里设置

 

创建app

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

3.在写好数据模型后(models.py),生成数据迁移文件

python manage.py makemigrations
python manage.py migrate

4.在terminal里添加数据

先确定自己在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. 创建超级管理员

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

6.settings.py里的配置

在django中还有一个命令框, 只需要输入命令,不需要输 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)

猜你喜欢

转载自blog.csdn.net/cp_123321/article/details/86513442