django框架使用方法详解

yipeiwu_com5年前Python基础

我的文章的意义

服务端开发,python,django这些内容上面的链接中有详细的阐述. 我写的内容肯定没有上面的完备,准确. 我的文章的价值在于从一个iOS程序员的角度来理解服务端开发. 客户端程序员在学习服务端开发时可能会有一些知识盲点. 我遇到的知识盲点我会着重介绍.

环境

  • 操作系统 macOS Sierra 10.12.6
  • IDE PyCharm
  • python 3.5

创建django项目

首先 创建一个空白环境

mkvirtualenv -p /usr/local/bin/python3.5 python35 --no-site-packages
workon python35

pip install django

django-admin.py startproject HelloWorld

cd HelloWorld

django-admin.py startapp mytest

这样项目就创建好了.

运行一下试试.

workon python35
cd HelloWorld
ls
此时能看到manage.py 文件
如果看不到manage.py, 切换路径仔细找找. 总之cd到manage.py 文件所在目录
python manage.py runserver 8000

图中红色的警告信息的意思是数据库没有migration. 就是工程中有了数据库定义, 但是没有根据数据库定义的代码生成数据库表.

不过不影响此时的运行

此时随便打开一个浏览器地址栏输入http://localhost:8000

看到

项目跑起来了.

停止运行: 同时按下Ctrl+C两个键.

这之后发现工程路径中多了一个文件

是因为django初始时默认使用sqlite数据库, 我们以后会改为mysql的.

使用PyCharm打开项目(有IDE当然要用了)

简单介绍下PyCharm的运行和调试, 至少断点调试必须要会.

对pycharm来说有两处地方需要配置, 否则和我们刚刚创建的python35环境对不上号.

图中选择刚刚创建的python35环境. 如果没有就手动创建一下(addLocal). 指向刚才创建的环境的bin/python就行.

上图中决定的是PyCharm进行代码提示的环境. 代码提示依赖个环境, 如果配置错误, PyCharm会提示很多不存在的错误.

第二处

选择python35环境.

这里决定的run和debug时用来运行项目的python环境.

我填写的配置是将项目跑在localhost的8000端口上.

这样填写只能够本地访问.

调试

将项目跑起来并且能够在局域网中访问

workon python35
cd 到manage.py文件所在目录
python manage.py runserver 0.0.0.0:8000

此时理论上可以通过局域网访问项目.

但是django默认的settings.py 配置还有问题.

需要修改settings.py 文件中的

ALLOWED_HOSTS = []

修改为

ALLOWED_HOSTS = ["*",]

表示任何域名都可以访问本项目

修改之后重新 runserver项目. 即可通过局域网访问了.

例如下面的局域网地址.

http://192.168.0.43:8000

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pymysql 开启调试模式的实现

pymysql 开启调试模式的实现

今天在排查线上一个奇怪的数据库连接问题,所以打开了 pymysql 的源码在阅读,发现 pymysql 在其 connections 模块里内置了一个 DEBUG 变量用于控制是否开启调...

Python pyinotify日志监控系统处理日志的方法

前言 最近项目中遇到一个用于监控日志文件的Python包pyinotify,结合自己的项目经验和网上的一些资料总结一下,总的原理是利用pyinotify模块监控日志文件夹,当日志到来的情...

简单总结Python中序列与字典的相同和不同之处

共同点: 1.它们都是python的核心类型,是python语言自身的一部分 核心类型与非核心类型 多数核心类型可通过特定语法来生成其对象,比如"dave"就是创建字符串类型的对象的...

Python利用PyExecJS库执行JS函数的案例分析

Python利用PyExecJS库执行JS函数的案例分析

  在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,你的编写的脚本是不可能...

Python多继承以及MRO顺序的使用

多继承以及MRO顺序 1. 单独调用父类的方法 # coding=utf-8 print("******多继承使用类名.__init__ 发生的状态******") class...