Django基础系列1

Posted 互联网杂货店

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django基础系列1相关的知识,希望对你有一定的参考价值。

参考

1、runoob.com/django
2、djangoproject.com

1、安装(win)

1、安装python
2、安装django库:pip3 install django -i https://pypi.douban.com/simple/ --user
3、查看版本验证安装:python3 -m django --version
4、终端输入python3,进入Python终端,输入import django,输入django.get_version(),输出版本号

1、在安装的时候有个坑,Python的Scripts里面没有django-admin.exe,所以命令行不能直接使用
2、通过命令行输入where python得知python目录
3、C:\\Users\\YOU\\AppData\\Local\\Programs\\Python\\Python37\\Scripts
4、通过命令行输入pip show django得知django目录,把里面的django-admin.exe复制到步骤3的路径内
5、C:\\Users\\YOU\\AppData\\Roaming\\Python\\Python37\\Scripts
6、使用命令django-admin startproject guest初始化项目成功,进行一些基础页面配置后(后续介绍)
7、第一次执行run后出现报错之后可执行python3 manage.py migrate重新run
8、项目文件夹终端运行python manage.py runserver 192.168.1.1:8000浏览器成功运行

2、安装(mac)

1、安装python
2、安装django库:pip3 install django -i https://pypi.douban.com/simple/ --user
3、查看版本:python3 -m django --version
4、终端输入python3,进入Python终端,输入import django,输入django.get_version(),输出版本号

1、在mac安装好Python后,接着安装django
2、命令行输入pip3 show django得知/Users/YOU/Library/Python/3.9/lib/python/site-packages
3、接着就是大坑,以为会在site-packages文件夹内,真正的位置在/Users/mao/Library/Python/3.9/bin内
4、找到mac中django-admin文件的位置就好办了
5、命令行输入/Users/YOU/Library/Python/3.9/bin/django-admin startproject guest即可创建模板

3、初次创建

1、在输入django-admin startproject guest命令后创建一系列文件

guest/
├── manage.py  # 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
└── guest  # 项目目录
    ├── __init__.py # 一个空文件,告诉 Python 该目录是一个 Python 包
    ├── asgi.py # 支持在 ASGI 上进行部署(https://asgi.readthedocs.io/en/latest/)
    ├── settings.py  # 该 Django 项目的设置/配置。
    ├── urls.py  # 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
    └── wsgi.py  # 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

4、继续升级

1、在输入python manage.py startapp login命令后创建一系列文件

guest/
├── manage.py  
└── login # 应用目录
    └── migrations # 目录
    	├── __init__.py
    └── templates # 模板目录
    	├── index.html 
    ├── __init__.py # 是一个空文件,表示当前目录booktest可以当作一个python包使用。
    ├── admin.py # 定义管理模块管理对象文件
    ├── apps.py # 声明应用的文件、文件跟网站的后台管理相关。
    ├── models.py # 定义应用模型文件、文件跟数据库操作相关。
    ├── tests.py # 文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来做。
    └── view.py # 视图处理文件、文件跟接收浏览器请求,进行处理,返回页面相关。
    └── urls.py # 路由文件
└── guest # 项目目录  
    ├── __init__.py 
    ├── asgi.py 
    ├── settings.py
    ├── urls.py
    └── wsgi.py
    
apps文件夹是django1.10之后增加的,通常里面包含对应用的配置。

2、配置一下

settings.py

1、在INSTALLED_APPS中加入你的应用名字
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'login'
]
2、修改ALLOWED_HOSTS中添加请求的hosts 
ALLOWED_HOSTS = ['0.0.0.0','127.0.0.1','localhost'] or ALLOWED_HOSTS = ['*']
3、python3 manage.py runserver http://127.0.0.1:8080、http://localhost:8080
4、浏览器输入http://127.0.0.1:8080、http://127.0.0.1:8080/admin

3、初始化最基础页面(肝)

注意一下模板里面的url和path
在django>=2.0的版本,urls.py中的django.conf.urls已经被django.urls所取代。
其中最大的改变如下:import urls被import path所取代
老版本:from django.conf.urls import url、urlpatterns里面url(r’^hello$', view.hello)
新版本:from django.urls import path、urlpatterns里面path(‘hello/’, view.hello)

urls.py

from django.contrib import admin
from django.urls import path # 新版本的用法
from sign import views # 新应用

urlpatterns = [
    path('',views.index), # 默认路径
    path('index/',views.index,name='index'),
    path('admin/', admin.site.urls),
]
views.py

from django.shortcuts import render

def index(request):
    return render(request,"index.html")
templates index.html

<html>
    <head>
        <title>Django page</title>
    </head>
    <body>
        <h1>Hello Django!</h1>
    </body>
</html>

5、学习一下登录

1、先从项目的urls.py开始

urls.py

from django.contrib import admin
from django.urls import path
from sign import views

urlpatterns = [
    path('',views.login), # 登录
    path('login_action/',views.login_action,name='login'), # 跳转到登录逻辑函数处理,处理后继续分发页面
    path('success/',views.success), # 登录成功
    path('admin/', admin.site.urls)
]

2、从urls.py路径处理后,到views.py调用函数

views.py

from django.shortcuts import render

def login(request):
    return render(request,"login.html")

def login_action(request):
    if request.method == "POST":
        # 寻找名为 "username"和"password"的POST参数,而且如果参数没有提交,返回一个空的字符串。
        username = request.POST.get("username","")
        password = request.POST.get("password","")
        if username == '1' and password == '1':
            return render(request,"success.html")
        else:
            return render(request,"login.html","error":"账号或密码错误!")

def success(request): 
    return render(request,"success.html")            

3、从views.py内函数处理后,render转发到html页面

templates > login.html

<html>
    <head>
        <title>Django page</title>
    </head>
    <body>
        <h1>登录</h1>
        <form method="post" action="/login_action/">
            <input name="username" type="text" placeholder="username"><br>
            <input name="password" type="password" placeholder="password"><br>
            <button id="btn" type="submit">登录</button>
             error <br>
            % csrf_token %
        </form>
    </body>
</html>

4、以上完善后,输入python3 manage.py runserver localhost:8000

以上是关于Django基础系列1的主要内容,如果未能解决你的问题,请参考以下文章

Django学习系列之基础

Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !

Django models ORM基础操作--白话聊Django系列

手记小心在where中使用NEWID()的大坑

Django--系列学习

django-知识系列