首页 > 其他分享 >用pycharm创建一个django框架

用pycharm创建一个django框架

时间:2023-05-26 12:22:33浏览次数:31  
标签:processors 框架 models py django context contrib pycharm

用pycharm创建一个django框架

image-20230526105135768

注意解释器的选择和文件路径

创建完django项目

1.自动创建了一个templates目录(先删除)

2.把settings里的

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates']
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

改成

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': []
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

即取消默认的templates文件夹

默认项目文件夹

settings.py【项目配置】

urls.py【url和函数的对应关系】

asgi.py【接收网络请求(不要动的)】

wsgi.py【接收网络请求(不要动的)】

创建app

找到manage.py文件目录

调用python startapp+app名称

python manage.py startapp cnnDjango

完成!

C:\Users\HP\.conda\envs\pytorch-gpu\python.exe "D:\pycharm\PyCharm 2022.1.3\plugins\python\helpers\pycharm\django_manage.py" startapp cnnDjango E:/pyzixue/cnn_django
Tracking file by folder pattern:  migrations

Following files were affected 
 E:\pyzixue\cnn_django\cnnDjango\migrations\__init__.py
进程已结束,退出代码0

现在总体文件是这样

卷 game 的文件夹 PATH 列表
卷序列号为 B0AB-9373      
E:.
├─.idea
│  └─inspectionProfiles   
├─cnnDjango
│  └─migrations
└─cnn_django

models.py【对数据库操作】

views.py【函数】

快速上手

确保app已经注册【settings.py]

1、找到apps.py 找到

class CnndjangoConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'cnnDjango'

2、返回settings.py找到已经安装的app加进去

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

加入进去后

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'cnnDjango.apps.CnndjangoConfig',
]

编写url和视图函数对应关系【urls.py】

先将views导入完成

不用默认的admin

修改成

from cnnDjango import views
urlpatterns = [
    #path('admin/', admin.site.urls),
    #www.xxx.com/index/ -> 函数
    path('index/', views.index),
]

编写视图函数【views.py】

在views.py中定义index函数

from django.shortcuts import render,HttpResponse

def index(request):
    return HttpResponse('欢迎使用!')

启动django项目

命令行启动

python manage.py runserver

pycharm启动

右上角启动运行

成功之后可以访问

http://127.0.0.1:8000/index/

设置模板文件夹

在app文件夹下面创建templates文件夹

image-20230526112623770

在templates创建html文件夹即可在【views.py】中使用函数跳转

# 会去app目录下的templates目录寻找xxx.html文件
# 根据app注册的顺序,逐一查找
return render(request,"XXX.html")

创建静态文件夹

在app目录下创建一个static文件夹

在html中可以这样读取static文件内容

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img src="{% static 'img/1.png' %}" alt=""> 
</body>
</html>

这么写的优势是如果想改变整个static文件目录

可以去【settings.py】中改变一下代码文件

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/

STATIC_URL = '/static/'

改变static即可改变所有静态文件目录

django的模板语法

在【views.py】中

return render(request,'xxx,html',dict)

意为往xxx.html传入一个字典

在html生成中可以调用dict的内容

{% for item in dict%}
	<li>{{ item.xxx }}</li>
{% endfor %}

连接mysql模块

不需要Mysql数据库 + pymysql

使用django内置的orm框架

先安装模块

pip install mysqlclient

但是注意它无法创建数据库,所以数据库得我们自己创建

1.先进入msql

show databases

2.创建数据库

create database 数据库名字 DEFAULT CHARSET utf8 COLLATE uft8_general_ci;

3.django连接数据库

在【settings.py】找到

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

修改成

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'dbname',
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST': '127.0.0.1',
    'PORT': 3306,
    }
}

django创建表

在【models.py】文件中操作表

定义类

from django.db import models

# Create your models here.
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    pwd = models.CharField(max_length=64)
    age = models.IntegerField()

写好之后在【manage.py】目录文件

python manage.py makemigrations
python manage.py migrate

执行这两个命令即可更新mysql

前提:你的app已经注册!

表的增删改查

在【views.py】文件中

from app01.models import UserInfo
def orm(request):
    #测试ORM操作表中的数据
    UserInfo.objects.create(name = 'xxxx')
    #删除
    UserInfo.objects.filter(id=3).delete()
    #获取数据
    data_list = UserInfo.objects.all()
    for obj in data_list:
        print(obj.od,obj.name)
    #获取第一行
    UserInfo.objects.filter(id=3).first()
    #更新数据
    UserInfo.objects.all().update(age = 18)
    UserInfo.objects.filter(id=2).update(age = 18)
    return HttpResponse("成功")

标签:processors,框架,models,py,django,context,contrib,pycharm
From: https://www.cnblogs.com/jinwan/p/17434405.html

相关文章

  • 微软Playwright开源自动化框架初探-安装和调试(java版)
    最近在研究部门的UI自动化框架(java+selenium+testNG+openCV等),发现在调试脚本时,需要先下载谷歌浏览器。无头/有头模式还需要代码区分。还有一个体验问题,程序启动太慢,从运行到浏览器启动,差不多需要30s左右,等得有点着急。  在知乎/CSDN中找到多篇文章推荐自动化测试利器-Playwrigh......
  • 深度学习进阶篇-预训练模型[3]:XLNet、BERT、GPT,ELMO的区别优缺点,模型框架、一些Trick
    深度学习进阶篇-预训练模型[3]:XLNet、BERT、GPT,ELMO的区别优缺点,模型框架、一些Trick、TransformerEncoder等原理详细讲解1.XLNet:GeneralizedAutoregressivePretrainingforLanguageUnderstanding1.1.从AR和AE模型到XLNet模型自回归模型(AutoregressiveModel,AR),通过估计......
  • JAVA语言springboot框架实现的求职招聘管理系统
    技术架构技术框架:SpringBoot+FreeMarker+JPA+MySQL5.7运行环境:jdk8+IntelliJIDEA+maven3+宝塔面板宝塔部署教程回到IDEA,点击编辑器右侧maven图标,执行package,完成后就会在根目录里生成一个target目录,在里面会打包出一个jar文件。宝塔新建一个数据库,导入数据库文件......
  • JAVA语言开发springboot框架实现的自动化立体智慧仓库WMS
    技术架构技术框架:SpringBoot+layui+HTML+CSS+JS运行环境:jdk8+IntelliJIDEA+maven3+宝塔面板宝塔部署教程回到IDEA,点击编辑器右侧maven图标,执行package,完成后就会在根目录里生成一个target目录,在里面会打包出一个jar文件。宝塔新建一个数据库,导入数据库文件,数据......
  • javaer你还在手写分表分库?来看看这个框架怎么做的 干货满满
    合集-easy-query(2) 1.献给转java的c#和java程序员的数据库orm框架05-222.javaer你还在手写分表分库?来看看这个框架怎么做的干货满满05-26收起 javaorm框架easy-query分库分表之分表高并发三驾马车:分库分表、MQ、缓存。今天给大家带来的就是分库分表的干......
  • spring boot框架JAVA语言实现的货运系统(司机APP端+货主APP端)
    技术架构:springboot、mybatis、redis、vue、element-ui  开发语言:java、vue、uniapp开发工具:idea、vscode、hbuilder+  前端框架:vue  后端框架:springboot  数据库:mysql  移动端:uniapp混合开发+原生插件后台管理端功能:权限设置:角色设置、人员设置......
  • 框架技术 ---- Mybatis介绍
    内容管理       三层架构       JDBC的缺陷、       框架framework       Mybatis       mybatis主配置文件       Mybatis映射文件mapper           select标签       mybatis简单使用         ......
  • Katana:一款功能强大的下一代网络爬虫框架
    关于KatanaKatana是一款功能强大的下一代网络爬虫框架,在该工具的帮助下,广大研究人员可以轻松完成资源爬取和渗透测试阶段的信息收集任务。功能介绍1、快速且完全可配置的网络资源爬取;2、支持标准模式和Headless模式;3、JavaScript解析/爬取;4、可自定义的自动化表单填充;5、范......
  • 1005.Django项目用户功能之认证权限以及班级管理
    一、Token1.Token概述在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请,登录系统使用Token、令牌、代表执行某些操作的权利的对象。更通俗点可以叫暗号,在一些数据传输之前,要先对暗号的核对,不同的暗号被授权不同的数据操作。方法:①引入--客户端请求......
  • 开源 RPC 框架有哪些
    一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。跟语言平台绑定的开源RPC框架主要有下面几种。Dubbo:国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源,仅支持Java语言。Motan:微博内部使用的RPC框架,于2016年对外开源,仅支持Java语言。T......