返回顶部
首页 > 资讯 > 后端开发 > Python >Django入门(1)
  • 530
分享到

Django入门(1)

入门Django 2023-01-31 08:01:08 530人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

项目创建和APP创建 准备环境 python3 virtualenv pip3 pip3 install Django==1.1 项目创建,APP创建 djanGo-admin startproject ops cd ops pyth

项目创建和APP创建

  • 准备环境
python3 
virtualenv
pip3
pip3 install Django==1.1
  • 项目创建,APP创建
djanGo-admin startproject ops
cd ops
python3 manage.py startapp darshboard
cd darshboard #进入项目路径
touch urls.py #创建路由文件
  • 项目结构如下:
ops/
|-- darshboard
| |-- admin.py
| |-- apps.py
| |-- __init__.py
| |-- migrations
| |-- models.py
| |-- tests.py
| |-- urls.py
| `-- views.py
|-- db.sqlite3
|-- manage.py
`-- ops
    |-- __init__.py
    |-- settings.py
    |-- urls.py
    `-- wsgi.py
  • 项目注册
# vim ops/ops/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'darshboard.apps.DarshboardConfig' #在此处注册darshboard项目
]
  • 路由注册
# vim ops/ops/urls.py

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^darshboard/',include("darshboard.urls")), #注册app的urls
]
此时,一个完整的流程就好了

hello world

修改darshboard的路由

# vim ops/darshboard/urls.py

from django.conf.urls import url
from .views import index

urlpatterns = [
    url(r'^hello/', index,name='index'),
]

写一个视图函数

函数视图的定义:
a. 就是一个普通函数
b. 接收一个HttpRequest实例作为第一个参数
c. 然后返回一个HttpResponse的实例
# vim ops/darshboard/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse('hello world')

项目启动&测试

  • 启动项目
Python manage.py runserver 0:8080
  • 访问:

打开本地浏览器输入:

http://211.159.156.251:8080/darshboard/hello/

即可访问!

HttpRequest对象

  • 由Django创建

属性如下:

HttpRequest.scheme
HttpRequest.body
HttpRequest.path
HttpRequest.method
HttpRequest.encoding
HttpRequest.GET
HttpRequest.POST
HttpRequest.META

方法如下:

HttpRequest.get_host()
HttpRequest.get_port()
HttpRequest.get_full_path()
HttpRequest.is_secure()
HttpRequest.is_ajax()
  • 传递一个字符串作为页面的内容到HttpResponse构造函数
from django.http import HttpResponse
response = HttpResponse("here is the WEB page")
response = HttpResponse("Text only .please,content_type="text/plain")
  • 参考的views如下
from django.shortcuts import render
from django.http import HttpResponse,JSONResponse
import json
def index(request):
    data = {
        'name':'wanghui',
        'age':20
    }
    data_1 = ["devops","python"]
    #return HttpResponse(json.dumps(data),content_type="application/json")   #返回的content-typet
    #return HttpResponse(json.dumps(data_1),content_type="application/json")
    return JsonResponse(data_1,safe=False)
    # return HttpResponse("Hello World!!",status=599)

模板

为了让数据更加美观。

POST和GET请求

  • GET请求与传参
- method
- GET
  • POST提交数据

QueryDict对象

方法练习

#  python manage.py shell
>>> from django.http import QueryDict
>>> data = QueryDict('a=12&a=123&b=233')
>>> data.urlencode()
'a=12&a=123&b=233'

数据库同步

https://docs.djangoproject.com/en/1.11/ref/settings/#databases
  • 数据库同步相关命令
python manage.py showmigrations
python manage.py sqlmigrate sessions 0001
python manage.py dbshell   # 进入shell模式

创建用户

  • django-shell创建用户
# 方式一:
(venv3) [wanghui@www ops]$ python manage.py shell
Python 3.6.1 (default, Jun 22 2018, 18:25:52) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more infORMation.
(InteractiveConsole)
>>> from django.contrib.auth.models import User
>>> User.objects.create_user('rock','12272@qq.com','123456')   #创建普通用户
>>> u = User.objects.get(username='rock')     #查找用户
>>> u.set_password('654321')       #修改密码
>>> u.save()                                   #保存
-------------------------------------------------------------------------------------------------------------
# 方式二:
(venv3) [wanghui@www ops]$ python manage.py createsupperuser

用户登录小练习

重点在于对函数视图的练习

  • darshboard/views.py
from django.shortcuts import render
from django.http import HttpResponse,JsonResponse,QueryDict
from django.template import loader,Context,Template
from django.contrib.auth.models import User
from django.contrib.auth import login,authenticate

def user_login(request):
    # print(request.GET)
    # 获取提交过来的用户名&密码
    if request.method == "GET":     #get请求的话,就直接返回页面
        return render(request, 'user_login.html')
    elif request.method == "POST":  #post就要获取用户名和密码
        username = request.POST.get("username")
        passWord = request.POST.get("password")
    # 根据用户名取出这个记录是否存在
        user_obj = authenticate(username=username,password=password)
        if user_obj:
            login(request,user_obj)
            print("登陆成功!")
        else:
            print("登陆失败!")
    elif request.method == 'DELETE':      # 通过delete方法获取请求体
        data = QueryDict(request.body)    # 获取delete的请求体
        print(data)
    return HttpResponse("")
  • darshboard/urls.py #指定路由
from django.conf.urls import url,include
from django.contrib import admin
from .views import index,index_template,index_methods,user_login
urlpatterns = [
    url(r'^user_login',user_login)
]
  • darshboard/user_login.html
<ul>
    <form method="DELETE" action="#">   
        <li>用户名:<input type="text" name="username"></li>
        <li>密码:<input type="text" name="password"></li>
        <li><input type="submit"></li>
    </form>
</ul>

关于delete方法的请求方式

在linux本地机器上执行:
curl -XDELETE http://127.0.0.1:8080/darshboard/user_login/ -d username=rock -d password=654321

--结束END--

本文标题: Django入门(1)

本文链接: https://lsjlt.com/news/193157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django入门(1)
    项目创建和APP创建 准备环境 python3 virtualenv pip3 pip3 install django==1.1 项目创建,APP创建 django-admin startproject ops cd ops pyth...
    99+
    2023-01-31
    入门 Django
  • Django入门
    一、http协议 http协议即:Hyper Text Transfer Protocol(超文本传输协议),于1990年提出,是用于万维网(World Wide Web)服务器与本地浏览器之间传输超文本的传送协议 1.1 htt...
    99+
    2023-01-30
    入门 Django
  • Django—入门
    索引         1.搭建环境       2.创建项目       3.设计模型       4.管理站点       5.视图及URL       6.模板   软件框架 问题1:什么是软件框架? 举个简单的例子,对于一个公司来说...
    99+
    2023-01-31
    入门 Django
  • python django入门
    目录1.mvc vs mvtmvc:mvt:2.虚拟环境3.安装包4.创建django项目5.创建应用6.模型ORM选项 说明7.后台管理系统(站点管理)1.mvc vs mvt m...
    99+
    2024-04-02
  • J2EE入门(1) (转)
    J2EE入门(1) (转)[@more@]设置 在开始开发例子应用程序之前,你应当按照这个章节的说明来做. 获得例子代码 组件的源代码在examples/src/EJB/converter 目录中. 如果你在线查看, 首先需要从下面地址下载...
    99+
    2023-06-03
  • Django -- 安装入门
    关于Django的学习,我主要依据的两个地址,希望可以和大家分享:http://www.runoob.com/django/django-install.htmlhttp://djangobook.py3k...
    99+
    2024-04-02
  • FastAPI--快速入门(1)
    FastAPI 是一个高性能 Web 框架,用于构建 API。主要特性:快速:非常高的性能,与 NodeJS 和 Go 相当快速编码:将功能开发速度提高约 200% 至 300%更少的错误:减少约 40% 的人为错误直观:强大的编辑器支持,...
    99+
    2023-01-31
    入门 快速 FastAPI
  • 13.django入门01(django入门初探视图,模板,路由)
    一、django的基本使用流程。pip install django #安装django创建一个project: django-admin startproject mysite---mysite...
    99+
    2024-04-02
  • Django 入门学习(3)
    在例4的基础上,我希望直接保存数据到数据库中。 Django自带了一个sqlite的数据库,已经配置好了 可以直接使用。使用方式和sqlalchemy类似,相当于一个内置的ORM框架。settings.py 默认已经绑定了sqlite3DA...
    99+
    2023-01-31
    入门 Django
  • Redis入门(1) - 使用Cli
    * [在Docker中使用Redis] * [Redis-Cli] * [命令的返回值类型] * [Redis中的多数据库] * [基础命令] Redis是REmote DIctionary Server(远程字典服务器)...
    99+
    2017-07-26
    Redis入门(1) - 使用Cli
  • 1.python入门到精通
    1.1跨平台windows、Mac OS、Linux、WWW。1.2Python的应用范围操作系统3D动画WEB云计算企业应用1.3可以学到什么?Python3的所有常用语法面向对象编程思维运用模块进行编程游戏编程计算机仿真从IDLE启动P...
    99+
    2023-01-31
    入门 python
  • Python入门3-变量1
    1.变量   例:bread = 5, print(bread)则输出5 2.元组(使用“()”进行赋值),赋值后,其值不可以再次修改   可理解为数组   breakfast = ("coffee","tea","eggs")   读取...
    99+
    2023-01-31
    变量 入门 Python
  • Python(入门小练习1)
    金融方面:比较价钱假设你购买大米时发现它有两种包装。你会别写一个程序比较这两种包装的价钱。程序提示用户输入每种包装的重量和价钱,然后显示价钱更好的那种包装。下面是个示例运行#!/usr/bin/env python# -*- coding:...
    99+
    2023-01-31
    入门 Python
  • javaEE -14(10000字 JavaScript入门 - 1)
    一:初始 JavaScript JavaScript (简称 JS)是世界上最流行的编程语言之一,它是一个脚本语言, 通过解释器运,主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行. JavaScript 和 ...
    99+
    2023-12-23
    java-ee javascript java
  • Druid入门(1)—— 快速入门实时分析利器-Druid_0.17
    一、安装准备 本次安装的版本是截止2020.1.30最新的版本0.17.0 软件要求 需要Java 8(8u92 +)以上的版本,否则会有问题 Linux,Mac OS X或其他类似Unix的操作系统(不支持Windows) ...
    99+
    2019-09-20
    Druid入门(1)—— 快速入门实时分析利器-Druid_0.17
  • MongoDB入门培训 | 8周入门NoSQL No.1数据库
    为什么要学好MongoDB ? MongoDB是为满足企业当今的高可用性、可扩展性及满足GDPR法规等需求而设计的新一代文档数据库。凭借灵活的模式和丰富的文档结构,MongoDB能够帮助各种...
    99+
    2024-04-02
  • python从入门到精通(DAY 1)
    1、要点 (1) 在C语言中没有字符串,只有字符, 在python中的字符串hello,在C语言中是以字符数组在内存存放['h','e','l','l','o'],如果对字符串修改,则是在内存中...
    99+
    2022-06-04
    入门 python DAY
  • C语言零基础入门(1)
    目录1. C语言简介1.1 C语言发展史1.2 C语言的特点1.3算法及其表示1.4常用算法介绍总结1. C语言简介 1.1 C语言发展史 C语言是一种广泛使用的面向过程的计算机程序...
    99+
    2024-04-02
  • Django入门知识点有哪些
    本篇内容介绍了“Django入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django入门:基本知识熟悉python和dja...
    99+
    2023-06-18
  • Python自动化运维Django入门
      随着IT运维技术日益更新,近几年运维自动化越来越火,而且学习python的人非常的火爆,尤其是python自动化运维开发,得到了很多前辈的推崇。这里我也记录一下以前学习Django的一点点心得和方法,方便以后自己查阅,如果能帮助初学者是...
    99+
    2023-01-31
    入门 Python Django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作