Django菜鸟教程学习记录(一)

Django菜鸟教程学习记录(一)创建项目django-admin.pystartprojectHelloWorld就会在当前目录下创建一个名为HelloWorld的文件夹。启动项目cdHelloWorldpython3manage.pyrunserver创建视图在helloworld的文件夹下新建一个views.py的文件并添加内容fromdjango.httpimportHttpResponsedefhello(request):returnHttpResponse(“Hello

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

创建项目

django-admin.py startproject HelloWorld

就会在当前目录下创建一个名为HelloWorld的文件夹。

启动项目

cd HelloWorld
python3 manage.py runserver

创建视图

在helloworld的文件夹下新建一个views.py的文件并添加内容

from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world ! "

并打开urls.py的文件写入

from django.conf.urls import url
 
from . import views
 
urlpatterns = [
    url(r'^$', views.hello),
]

这时候访问http://127.0.0.1:8000/便可以访问到HelloWorld

Django模板

在项目内新建一个templates文件夹并创建一个runoob.html的文件

<h1>{ 
   { 
    hello }}</h1>

向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为

'DIRS': [BASE_DIR / "templates"],

在views.py添加新的内容

from django.shortcuts import render

def runoob(request):
    context ={ 
   }
    context['hello'] = 'Hello World!'
    return render(request,'runoob.html',context)

有了方法之后,要在urls.py内添加新的路径

from . import views

urlpatterns = [
    
    path('runoob/', views.runoob),
]

在runoob的页面中添加了hello这个变量,然后在view用context进行承接,并将其赋值为Hello World!,然后在 利用render进行渲染。就实现了数据和视图分离。
而在真正的使用过程中,应该是这样的:

def runoob(request):
    views_name = "我在view内进行赋值"
    return render(request,'runoob.html',{ 
   "hello":views_name})

也可以支持类似数组的写法在runoob.html页面内进行定义
views.py:


def runoob(request):
    views_array = ["元素1","元素2","元素3"]
    return render(request,'runoob.html',{ 
   "hello":views_array})

runoob.html

<h1>{ 
   { 
    hello  }}</h1>
<h2>{ 
   { 
    hello.1}}</h2>

进行访问,
在这里插入图片描述
templates 中的 runoob.html中,可以用 .键 取出对应的值。

先在view.py中进行赋值

def runoob(request):
    views_array = { 
   "name":"我是name值"}
    return render(request,'runoob.html',{ 
   "hello":views_array})

在runoob.html中取值

<h1>{ 
   { 
    hello  }}</h1>
<h2>{ 
   { 
    hello.name}}</h2>

…未完待续

Django数据库Mysql

首先需要有一个数据库runoob
并在setting.py中修改信息

DATABASES = { 
    
    'default': 
    { 
    
        'ENGINE': 'django.db.backends.mysql',    # 数据库引擎
        'NAME': 'runoob', # 数据库名称
        'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1 
        'PORT': 3306, # 端口 
        'USER': 'lqy',  # 数据库用户名
        'PASSWORD': 'qwe123', # 数据库密码
    }  
}

并在__init__.py中引入模块和进行配置

import pymysql
pymysql.install_as_MySQLdb()

新建一个TestModel应用来应用这个模 型

django-admin.py startapp TestModel

在TestModel的models.py中新建一个类

class Test(models.Model):
    name = models.CharField(max_length=20)

其中Test为类名 == 数据库的表名且继承了models.Model。
name就相当于数据库的列名 属性为char
接下来在 settings.py 中找到INSTALLED_APPS这一项,在最后添加上

INSTALLED_APPS = [

'TestModel', 
}

在终端运行

$ python3 manage.py migrate   # 创建表结构

$ python3 manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
$ python3 manage.py migrate TestModel   # 创建表结构

个人踩坑
在执行第二个语句的时候一直提示如下错误在这里插入图片描述
在settings.py中将语言改成

LANGUAGE_CODE = 'zh-hans'

#__init__.py这个页面中添加第二行
import pymysql
pymysql.version_info = (1, 4, 0, "final", 0)
pymysql.install_as_MySQLdb()

以上我们就完成了数据库的创建。

数据库的操作

用到再来写

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195921.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月7日 下午8:22
下一篇 2025年10月7日 下午9:01


相关推荐

  • 微信公众号网页开发,公众平台设置

    微信公众号网页开发,公众平台设置业务域名可以不设置。IP白名单需要设置,如果要获取yoken(获微信头像等)转载于:https://www.cnblogs.com/heyiping/p/11466493.html

    2022年5月6日
    48
  • JavaScript匿名函数理解及应用[通俗易懂]

    JavaScript匿名函数理解及应用[通俗易懂]匿名函数匿名函数顾名思义就是没有名字的函数,在实际开发中经常会用到,也是JavaScript的重点。匿名函数又叫立即执行函数。由于这种函数是匿名的,所以它不能被调用。由于它不能被调用,所以如果它不立即执行的话就没有了意义。由于它需要立即执行,所以在执行完之后匿名函数就会被销毁。匿名自执行函数的作用就是用于闭包和创建独立的命名空间两个方面。匿名函数的基本形式为(function(){…})();前面的括号包含函数体,后面的括号就是给匿名函数传递参数然后立即执行。匿名函数的作用是避免全局变量

    2022年10月4日
    4
  • bootefi分多大合适_boot from network

    bootefi分多大合适_boot from network转载:http://blog.csdn.net/olei_oleitao/article/details/7919307 一、DM36X的BOOT过程介绍DM36x的BOOT过程和DM6446、DM6467完全是一样的,因为都是ARM926EJS架构,里边都有一个RBL,这RBL在芯片出厂的时候都烧写在ROM里,芯片上电复位后RBL在运行,然后读取BOOTMODE引脚的电平状态,决定

    2022年8月13日
    7
  • ILRuntime使用讲解

    ILRuntime使用讲解ILRuntime 使用讲解快速入门 ILRuntime 的作用为什么要用到 ILRuntimeILR 使用环境部署生成 Unity Model dll 文件和 Unity HotFix dll 文件加载 ILRuntime 的作用用于 unity 游戏的热更新 其语言是由 C 写的 所以很受 unity 工程师的喜爱 这样就不再用 xlua 脚本进行热更新 ILRuntime 官方讲解为什么要用到 ILRuntime 我们知道他的目的后 它主要是用来进行游戏的更新操作 但是更新的流程是玩家运行游戏查看使用的游戏版本和我们上传

    2026年3月18日
    2
  • Java与Python哪个更好?「建议收藏」

    Java与Python哪个更好?「建议收藏」一些开发人员声称Python比Java更有生产力。但更应先说明的是:Python和Java有什么区别?PythonvsJava            Java是一个典型化的编程语言,这意味着变量名必须显示声明。相比之下,我们有动态类型的Python,它不需要声明变量。对于编程语言的动态和静态类型有很多争论。不过请注意这样一个特征:Python是一个有着简单句法的多样性的语…

    2022年7月7日
    26
  • java setaccessible_java.lang.reflect.AccessibleObject.setAccessible(boolean flag)方法示例

    java setaccessible_java.lang.reflect.AccessibleObject.setAccessible(boolean flag)方法示例java lang reflect AccessibleOb setAccessibl booleanflag 方法将此对象的可访问标志设置为指定的布尔值 设置值为 true 表示反射对象应该在使用时抑制 Java 语言访问检查 设置值为 false 表示反射对象应强制执行 Java 语言访问检查 声明以下是 java lang reflect AccessibleOb setAccessi

    2025年9月13日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号