小白神器 - Django - 起步
小白神器 - Django - 起步
一. Django下载
1. 命令行
pip install django==1.11.16 pip install django==1.11.16 -i https://pypi.doubanio.com/simple/ #指定地址之后下载速度更快
2.Pycharm
#使用 pycharm 下载 可以使用pip 下载同上, 也可以使用以下界面操作 sttings -> 解释器 -> 点+号 -> 输入Django -> 选择版本 -> 下载
二. 创建项目
1. 命令行
django-admin startproject 项目名
2.Pycharm
file -> new project -> 选择Django -> 输入项目名称 -> 选择解释器 -> 输入APP名称 -> 创建项目
三. 启动项目
1. 命令行
切换到项目的根目录下 manage.py
python manage.py runserver #127.0.0.1:8000 python manage.py runserver 8000 # 127.0.01 python manage.py runserver 0.0.0.0:80 # 0.0.0.0:8000
2. pycharm
修改配置 点三角启动 dj
四. 配置文件(settings)
1.静态文件
STATIC_URL = '/static/' #别名STATICFILES_DIRS = [os.path.join(BASE_DIR,'static' ]
2.模板
TEMPLARTES DIRS [os.path.join(BASE_DIR, 'tempiates)]
3. 中间件
注释掉 'django.middleware.csrf.CsrfViewMiddleware'
4. APP
4-1 创建APP
命令行
python manage.py startapp app名称
pycharm
tools -> run manage.py task -> startapp app名称也可以在创建项目时创建
4-2 注册APP
# setting.py INSTALLED_APPS = ['app01' 或者 'app01.apps.App01Config', ]
5. form表单
1. action = '' method ='post' action 提交的地址 method 请求方式 2. 所有的input标签要有name属性 3. 一个input标签的type='submit' 或者 button
五. Django 使用mysql 数据库的流程
1. 创建一个mysql 数据库
2. 在setting中配置DATABASES
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'publisher','HOST': '127.0.0.1','PORT': 3306,'USER': 'root','PASSWORD': 456} }
3. 告诉Django使用pymysql连接数据库
在settings统计目录下的__init__.py写代码:
import pymysql pymysql.install_as_MYSQLdb()
写表 在app下的mode.py中写类(继承models.Model)
class User(models.Model): # 默认表名 app01_username = models.CharField(max_length=32) # varchar(32)pwd = models.CharField(max_length=32)def __str__(self):return self.name
4. 数据库迁移
python manage.py makemigrations #记录models的变更记录 python manage.py migrate #把变更记录的操作同步到数据库中
六. pycharm 操作数据库
Django相关文件总结:
此文件夹主要用于创建 HTML文件 HTML文件用于前端页面的展示 HTMl 文件名与 url.py app下views类名有关
templates文件夹
自行创建的文件夹, 用于存放 HTML 相关的 css js 文件 及相关库
static 文件夹
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app_pub.apps.AppPubConfig', #激活app操作 ]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware', #注释掉'django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware', ]DATABASES = { #数据库连接配置操作'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'publisher','HOST': '127.0.0.1','PORT': 3306,'USER': 'root','PASSWORD': 456} }STATIC_URL = '/static/' #配置静态文件 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), ]
sttings.py
from django.conf.urls import url from django.contrib import admin from app_pub import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^index/', views.index),1、单一路由对应url(r'^index$', views.index),2、基于正则的路由url(r'^index/(\d*)', views.index), url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage),3、添加额外的参数url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}),4、为路由映射设置名称url(r'^home', views.home, name='h1'), url(r'^index/(\d*)', views.index, name='h2'),设置名称之后,可以在不同的地方调用,如: •模板中使用生成URL {% url 'h2' 2012 %} •函数中使用生成URL reverse('h2', args=(2012,)) 路径:django.urls.reverse •Model中使用获取URL 自定义get_absolute_url() 方法5、根据app对路由规则进行分类url(r'^web/',include('web.urls')),6、命名空间a. project.urls.pyfrom django.conf.urls import url,includeurlpatterns = [url(r'^a/', include('app01.urls', namespace='author-polls')),url(r'^b/', include('app01.urls', namespace='publisher-polls')), ]b. app01.urls.pyfrom django.conf.urls import url from app01 import viewsapp_name = 'app01' urlpatterns = [url(r'^(?P<pk>\d+)/$', views.detail, name='detail') ]c. app01.views.pydef detail(request, pk):print(request.resolver_match)return HttpResponse(pk)以上定义带命名空间的url之后,使用name生成URL时候,应该如下: •v = reverse('app01:detail', kwargs={'pk':11}) •{% url 'app01:detail' pk=12 pp=99 %}django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。
urls.py
import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day28.settings") application = get_wsgi_application()WSGI理解为你写的【python代码块】和【Web服务器接口】 的配置文件。
wsgi.py
# 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替 # 如下设置放置的与project同名的配置的 __init__.py文件中import pymysql pymysql.install_as_MySQLdb()
__init__.py(settings同级)
from django.db import models# Create your models here. class Publisher(models.Model):pid = models.AutoField(primary_key=True) #主键name = models.CharField(max_length=32, unique=True) #出版社名称 主要用于数据库创建表
app 下 models.py
from django.shortcuts import render, redirect, HttpResponse from app_pub import models# 从数据库获取所有出版社对象 def index(request):all_publisher = models.Publisher.objects.all().order_by('pid')return render(request, 'index.html', {'all_publisher': all_publisher})写函数, 连接HTML与 urls.py
app 下views.py
持续更新待续...
转载于:https://www.cnblogs.com/konghui/p/10050057.html
小白神器 - Django - 起步相关推荐
- 小白学Django第九天| Cookie和session的那些骚操作
点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...
- 小白学Django第十天| 模板的知识全部给你总结好了!
点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...
- 小白神器 - 一篇博客学会HTML
小白神器 - 一篇博客学会HTML 一. 简介 1. HTML 定义 htyper text markup language 即超文本标记语言. 超文本: 就是指页面内可以包含图片.链接,甚至音乐. ...
- 小白深度学习起步中——读取人像图像
人脸图像读取 首先,先调用三个库 import numpy as npimport cv2import zipfile 然后确定一下主程序,搞清楚我们这个程序的目的.是为了从解压解压上读取图像. if ...
- git安装以及使用教程(小白神器)!!!
转自 https://blog.csdn.net/weixin_44950987/article/details/102619708 git 提交 全部文件 1.git add . git add x ...
- 微软出Django教程啦!
周围很多小伙伴都在学Python.Python功能强大,语法简单,可以干很多事情.比如自动化测试,运维,机器学习,数据分析,金融股票量化分析,其实很多小公司或者大厂的运维部门都用Python做Web后 ...
- django admin使用在前端_Django| 给你博客装个Markdown编辑器
小白学Django系列: 小白学Django第一天| MVC.MVT以及Django的那些事 小白学Django第二天| Django原来是这么玩的! 小白学Django第三天| 一文带你快速理解模型 ...
- 人工智能工具推荐:采集图片神器——后羿采集器
我们在做人工智能图像识别的时候需要大量的图片,这些图片一部分是自己拍,更大一部分是从网上爬取各种图片. 但是爬取图片的工具一般都是爬取百度.谷歌.必应等网站. 百度经常会推出反爬机制,谷歌没有梯子根本 ...
- 手把手教你在centos上配置Django项目(超详细步骤)
点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...
- 微软开源的这个自动化测试神器,我知道的太晚了
2020 年初,微软发布了一个自动化测试工具--Playwright,不少人称它是小白神器. Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,F ...
最新文章
- 转型AI成功几率有几分?太真实了......
- 在 Linux 终端调整图像的大小
- SAP 序列号里'主批次'与'库存批次'不同,如何修改?
- Java7中的switch支持String的实现细节
- 全球及中国碳交易行业十四五发展展望与建设趋势研究报告2022-2027年
- muse ui tabs背景颜色字体颜色
- Data Augmentation
- 微服务 Docker和DevOps
- 卸载chrome_Chrome 浏览器必备“扩展管理工具”,一键管理 Chrome 扩展
- 使用腾讯云发送短信API接口实现(完整流程)
- .net性能测试和优化1 基本概念
- 【博客园2018总结帖】21天,在Github上获取 6300 star
- Problem A: 删除区间内的元素(线性表)
- spark-1.2.0 集群环境搭建
- 用枚举法实现单例设计模型
- 云开发—扫码点餐系统实战
- 雷电模拟器忘记锁屏密码
- 计算机专业如何晋级正高级,已有软考高级证书如何获得正高级职称?
- linux图片格式转换工具,在Linux系统上安装和使用Converseen批量图像转换器的方法...
- pyecharts-page的组合
热门文章
- oracle数据投毒,Oracle Database Server TNS Listener远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
- 课后习题7.11 医院内科有A,B,C,D,E,F,G共7位医生,每人在一周内要值一次夜班,排班的要求是: (1)A医生值班日比C医生晚1天; (2)D医生值班日比E医生晚2天; (3)B医生值班日比
- linux虚拟机对外部sd卡格式化和分区
- 360漏洞修复网管版小软件不错
- 学习逆向某风控id分析
- 华为最终面试java_最全的华为面试题-java学习
- pycharm没有python interpreter_pycharm无法设置interpreter?
- 网吧服务器系统机房图片,很多网吧看不到主机的秘密
- Intellij IDEA与Eclipse对比
- 计算机组成原理 课程设计报告